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 موجود در فهرست آرگومان‌هایش را فهرست می‌کند. به‌طور پیش‌فرض، برای هر فایل یا در صورتی که فایل یک آرشیو باشد برای هر پودمان (module)، یک خط خروجی تولید می‌شود.

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) از یکدیگر جدا می‌شوند. یک نویسه فاصله خالی می‌تواند با احاطه کردن کل گزینه درون علامت نقل‌قول تکی یا دوتایی، درون گزینه گنجانده شود. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با قرار دادن یک پیشوند بک‌اسلش قبل از نویسه مورد نظر درج شود. خودِ file می‌تواند شامل گزینه‌های @file دیگری باشد؛ با هر یک از این گزینه‌ها به‌صورت بازگشتی برخورد خواهد شد.

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

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

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

2026-01-23 binutils-2.45.1