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 است. همچنین، می‌توانید قالب خروجی GNU را انتخاب کنید (با استفاده از -G یا --format=gnu)؛ این قالب مشابه قالب خروجی Berkeley است، اما اندازه‌ها به شکل متفاوتی محاسبه می‌شوند.

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

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

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

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

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

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

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

Copyright (c) 1991-2025 Free Software Foundation, Inc.

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

2026-01-23 binutils-2.45.1