SIZE(1) GNU Development Tools SIZE(1)

size - نمایش اندازه بخش‌ها و اندازه کل فایل‌های باینری

size [-A|-B|-G|--format=compatibility]
[--help]
[-d|-o|-x|--radix=number]
[--common]
[-t|--totals]
[--target=bfdname] [-V|--version]
[-f]
[objfile...]

ابزار size گنو، اندازه بخش‌ها و اندازه کل هر یک از فایل‌های باینری objfile موجود در فهرست آرگومان‌های خود را فهرست می‌کند. به‌طور پیش‌فرض، برای هر فایل یا در صورتی که فایل یک آرشیو باشد، برای هر ماژول یک خط خروجی تولید می‌شود.

objfile... فایل‌هایی هستند که باید بررسی شوند. اگر هیچ فایلی مشخص نشود، فایل "a.out" به جای آن استفاده خواهد شد.

گزینه‌های خط فرمان دارای معانی زیر هستند:

با استفاده از یکی از این گزینه‌ها، می‌توانید تعیین کنید که خروجی size گنو مشابه خروجی size در System V باشد (با استفاده از -A یا --format=sysv)، یا مشابه Berkeley size باشد (با استفاده از -B یا --format=berkeley). حالت پیش‌فرض، قالب تک‌خطی مشابه قالب Berkeley است. در غیر این صورت، می‌توانید قالب خروجی گنو را انتخاب کنید (با استفاده از -G یا --format=gnu)؛ این قالب شبیه به قالب خروجی Berkeley است، اما اندازه‌ها به شیوه متفاوتی محاسبه می‌شوند.

در اینجا نمونه‌ای از قالب خروجی Berkeley (پیش‌فرض) از دستور size آورده شده است:

$ size --format=Berkeley ranlib size
   text    data     bss     dec     hex filename
 294880   81920   11592  388392   5ed28 ranlib
 294880   81920   11888  388688   5ee50 size

خروجی به سبک Berkeley، داده‌های فقط‌خواندنی را در ستون "text" محاسبه می‌کند و نه در ستون "data"؛ هر دو ستون "dec" و "hex" مجموع ستون‌های "text"، "data" و "bss" را به ترتیب در مبنای ده‌دهی و شانزده‌شانزدهی (هگزادسیمال) نمایش می‌دهند.

قالب گنو، داده‌های فقط‌خواندنی را در ستون "data" محاسبه می‌کند و نه ستون "text"، و مجموع ستون‌های "text"، "data" و "bss" را تنها یک بار در ستون "total" نمایش می‌دهد. از گزینه --radix می‌توان برای تغییر مبنای اعداد در تمامی ستون‌ها استفاده کرد. در اینجا همان داده‌ها با قراردادهای گنو نمایش داده شده‌اند:

$ size --format=GNU ranlib size
      text       data        bss      total filename
    279880      96920      11592     388392 ranlib
    279880      96920      11888     388688 size

این همان داده‌ها است، اما با قالبی نزدیک‌تر به قراردادهای System V نمایش داده شده است:

$ size --format=SysV ranlib size
ranlib  :
section         size         addr
.text         294880         8192
.data          81920       303104
.bss           11592       385024
Total         388392


size  :
section         size         addr
.text         294880         8192
.data          81920       303104
.bss           11888       385024
Total         388688
-?
نمایش خلاصه‌ای از گزینه‌ها و آرگومان‌های مجاز.
با استفاده از یکی از این گزینه‌ها، می‌توانید مشخص کنید که اندازه هر بخش بر مبنای ده‌دهی (-d یا --radix=10)؛ هشت‌هشتی (-o یا --radix=8)؛ یا شانزده‌شانزدهی (-x یا --radix=16) ارائه شود. در --radix=number، تنها این سه مقدار (8، 10، 16) پشتیبانی می‌شوند. اندازه کل همواره در دو مبنا داده می‌شود؛ برای خروجی -d یا -x بر مبنای ده‌دهی و شانزده‌شانزدهی، یا در صورت استفاده از -o بر مبنای هشت‌هشتی و شانزده‌شانزدهی.
چاپ اندازه کل نمادهای مشترک (common symbols) در هر فایل. هنگام استفاده از قالب Berkeley یا گنو، این مقدار در اندازه بخش bss محاسبه می‌شود.
نمایش مجموع اندازه تمام اشیاء فهرست‌شده (تنها در حالت قالب Berkeley یا گنو).
مشخص می‌کند که قالب کد شیء برای objfile برابر با bfdname است. این گزینه ممکن است ضروری نباشد؛ زیرا size می‌تواند به‌طور خودکار بسیاری از قالب‌ها را تشخیص دهد.
نمایش شماره نسخه size.
نادیده گرفته می‌شود. این گزینه در نسخه‌های دیگر برنامه size استفاده می‌شود، اما نسخه GNU Binutils از آن پشتیبانی نمی‌کند.
@file
خواندن گزینه‌های خط فرمان از file. گزینه‌های خوانده‌شده دقیقاً به جای گزینه اصلی @file قرار می‌گیرند. اگر file وجود نداشته باشد یا قابل خواندن نباشد، با گزینه به‌صورت تحت‌اللفظی رفتار خواهد شد و حذف نمی‌شود.

گزینه‌ها در file با نویسه‌های فاصله خالی (whitespace) جدا می‌شوند. می‌توان یک نویسه فاصله خالی را با قرار دادن کل گزینه درون گیومه تکی یا جفتی در گزینه گنجاند. هر نویسه‌ای (از جمله ممیز وارونه) را می‌توان با قرار دادن یک پیشوند ممیز وارونه (backslash) به آن وارد کرد. خود file نیز ممکن است شامل گزینه‌های @file دیگری باشد؛ چنین گزینه‌هایی به‌صورت بازگشتی پردازش خواهند شد.

ar(1)، objdump(1)، readelf(1)، و مدخل‌های Info برای binutils.

حق نشر (c) 1991-2026 Free Software Foundation, Inc.

اجازه کپی، توزیع و/یا اصلاح این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخه 1.3 یا هر نسخه بالاتر منتشر شده توسط بنیاد نرم‌افزارهای آزاد اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متن‌های روی جلد و بدون متن‌های پشت جلد. نسخه‌ای از این مجوز در بخش تحت عنوان «GNU Free Documentation License» گنجانده شده است.

2026-08-03 binutils-2.47