SIZE(1) ابزارهای توسعه نرم‌افزار GNU 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 شبیه به خروجی System V size باشد (با استفاده از -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 یا GNU این موارد در اندازه bss گنجانده می‌شوند.
نمایش مجموع کل تمام اشیاء فهرست‌شده (فقط در حالت قالب Berkeley یا GNU).
مشخص کردن اینکه قالب کد شیء برای objfile برابر با bfdname است. این گزینه ممکن است ضروری نباشد؛ size می‌تواند به‌طور خودکار بسیاری از قالب‌ها را شناسایی کند.
نمایش شماره نسخه size.
نادیده گرفته می‌شود. این گزینه توسط نسخه‌های دیگر برنامه size استفاده می‌شود، اما توسط نسخه GNU Binutils پشتیبانی نمی‌شود.
@file
خواندن گزینه‌های خط فرمان از file. گزینه‌های خوانده‌شده در محل قرارگیری گزینه اصلی @file درج می‌شوند. اگر file وجود نداشته باشد یا قابل خواندن نباشد، با گزینه به‌صورت مستقیم و لفظی برخورد شده و حذف نخواهد شد.

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

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

حق نشر © 1991-2026 بنیاد نرم‌افزارهای آزاد (Free Software Foundation, Inc.)

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

2026-08-11 binutils-2.47