proc_pid_fdinfo(5) File Formats Manual proc_pid_fdinfo(5)

/proc/pid/fdinfo/ - اطلاعات مربوط به توصیف‌کننده‌های فایل

این یک زیردایرکتوری شامل یک مدخل برای هر فایلی است که فرایند باز کرده است، که با توصیف‌کننده فایل (file descriptor) نام‌گذاری شده است. فایل‌های این دایرکتوری تنها توسط مالک فرایند قابل خواندن هستند. محتوای هر فایل را می‌توان برای دریافت اطلاعات درباره توصیف‌کننده فایل متناظر خواند. محتوا به نوع فایلی بستگی دارد که توصیف‌کننده فایل متناظر به آن اشاره می‌کند.

برای فایل‌ها و دایرکتوری‌های عادی، چیزی شبیه به این را مشاهده می‌کنیم:


$ cat /proc/12015/fdinfo/4
pos:    1000
flags:  01002002
mnt_id: 21
ino:    63107

فیلدها به شرح زیر هستند:

یک عدد ده‌دهی است که آفست (موقعیت جاری در) فایل را نشان می‌دهد.
یک عدد در مبنای هشت (اکتال) است که حالت دسترسی به فایل و پرچم‌های وضعیت فایل را نمایش می‌دهد (به open(2) مراجعه کنید). اگر پرچم توصیف‌کننده فایل close-on-exec تنظیم شده باشد، flags شامل مقدار O_CLOEXEC نیز خواهد بود.
پیش از لینوکس 3.1، این فیلد به اشتباه وضعیت O_CLOEXEC را در زمان باز شدن فایل نمایش می‌داد، نه وضعیت کنونی پرچم close-on-exec را.
این فیلد که از لینوکس 3.15 وجود دارد، شناسه ده‌دهیِ نقطه اتصال (mount) است که این فایل را در بر دارد. توضیحات /proc/pid/mountinfo را ببینید.
این فیلد که از لینوکس 5.14 وجود دارد، شماره اینود (inode) ده‌دهی فایل است.

برای توصیف‌کننده‌های فایل eventfd (به eventfd(2) مراجعه کنید)، (از لینوکس 3.8) فیلدهای زیر را مشاهده می‌کنیم:


pos:    0
flags:  02
mnt_id: 10
ino:    63107
eventfd-count:               40

eventfd-count مقدار فعلی شمارنده eventfd در مبنای شانزده (هگزادسیمال) است.

برای توصیف‌کننده‌های فایل epoll (به epoll(7) مراجعه کنید)، (از لینوکس 3.8) فیلدهای زیر را مشاهده می‌کنیم:


pos:    0
flags:  02
mnt_id: 10
ino:    63107
tfd:        9 events:       19 data: 74253d2500000009
tfd:        7 events:       19 data: 74253d2500000007

هر یک از خطوطی که با tfd آغاز می‌شوند، یکی از توصیف‌کننده‌های فایل تحت نظارت از طریق توصیف‌کننده فایل epoll را شرح می‌دهد (برای برخی جزئیات به epoll_ctl(2) مراجعه کنید). فیلد tfd شماره توصیف‌کننده فایل است. فیلد events یک ماسک هگزادسیمال از رویدادهای تحت نظارت برای این توصیف‌کننده فایل است. فیلد data مقدار داده مرتبط با این توصیف‌کننده فایل است.

برای توصیف‌کننده‌های فایل signalfd (به signalfd(2) مراجعه کنید)، (از لینوکس 3.8) فیلدهای زیر را مشاهده می‌کنیم:


pos:    0
flags:  02
mnt_id: 10
ino:    63107
sigmask:        0000000000000006

sigmask ماسک هگزادسیمال سیگنال‌هایی است که از طریق این توصیف‌کننده فایل signalfd پذیرفته می‌شوند. (در این مثال، بیت‌های ۲ و ۳ تنظیم شده‌اند که متناظر با سیگنال‌های SIGINT و SIGQUIT هستند؛ به signal(7) مراجعه کنید.)

برای توصیف‌کننده‌های فایل inotify (به inotify(7) مراجعه کنید)، (از لینوکس 3.8) فیلدهای زیر را مشاهده می‌کنیم:


pos:    0
flags:  00
mnt_id: 11
ino:    63107
inotify wd:2 ino:7ef82a sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:2af87e00220ffd73
inotify wd:1 ino:192627 sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:27261900802dfd73

هر یک از خطوطی که با "inotify" شروع می‌شوند، اطلاعات مربوط به یک فایل یا دایرکتوری تحت نظارت را نمایش می‌دهند. فیلدهای این خط به شرح زیر هستند:

شماره توصیف‌کننده نظارت (به صورت ده‌دهی).
شماره اینود فایل هدف (در مبنای شانزده).
شناسه دستگاهی که فایل هدف روی آن قرار دارد (در مبنای شانزده).
ماسک رویدادهای تحت نظارت برای فایل هدف (در مبنای شانزده).

اگر هسته با پشتیبانی از exportfs ساخته شده باشد، مسیر فایل هدف به صورت یک دستگیره فایل (file handle) از طریق سه فیلد هگزادسیمال نمایش داده می‌شود: fhandle-bytes، fhandle-type، و f_handle.

برای توصیف‌کننده‌های فایل fanotify (به fanotify(7) مراجعه کنید)، (از لینوکس 3.8) فیلدهای زیر را مشاهده می‌کنیم:


pos:    0
flags:  02
mnt_id: 11
ino:    63107
fanotify flags:0 event-flags:88002
fanotify ino:19264f sdev:800001 mflags:0 mask:1 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:4f261900a82dfd73

خط چهارم اطلاعاتی را که در هنگام ایجاد گروه fanotify از طریق fanotify_init(2) تعریف شده است، نمایش می‌دهد:

آرگومان flags داده‌شده به fanotify_init(2) (بیان‌شده در مبنای شانزده).
آرگومان event_f_flags داده‌شده به fanotify_init(2) (بیان‌شده در مبنای شانزده).

هر خط اضافی نمایش داده شده در فایل، شامل اطلاعاتی درباره یکی از نشانه‌ها (marks) در گروه fanotify است. بیشتر این فیلدها همانند inotify هستند، به جز:

پرچم‌های مرتبط با نشان (بیان‌شده در مبنای شانزده).
ماسک رویدادها برای این نشان (بیان‌شده در مبنای شانزده).
ماسک رویدادهایی که برای این نشان نادیده گرفته می‌شوند (بیان‌شده در مبنای شانزده).

برای جزئیات بیشتر درباره این فیلدها، به fanotify_mark(2) مراجعه کنید.

برای توصیف‌کننده‌های فایل timerfd (به timerfd(2) مراجعه کنید)، (از لینوکس 3.17) فیلدهای زیر را مشاهده می‌کنیم:


pos:    0
flags:  02004002
mnt_id: 13
ino:    63107
clockid: 0
ticks: 0
settime flags: 03
it_value: (7695568592, 640020877)
it_interval: (0, 0)
مقدار عددی شناسه ساعت است (متناظر با یکی از ثابت‌های CLOCK_* تعریف‌شده از طریق <time.h>) که برای نشان‌گذاری پیشرفت تایمر استفاده می‌شود (در این مثال، 0 همان CLOCK_REALTIME است).
تعداد دفعات انقضای تایمر است که رخ داده است (یعنی مقداری که فراخوانی read(2) روی آن بازمی‌گرداند).
این فیلد پرچم‌هایی را فهرست می‌کند که timerfd آخرین بار با آن‌ها مسلح شده بود (به timerfd_settime(2) مراجعه کنید)، در مبنای هشت (اکتال) (در این مثال، هر دو پرچم TFD_TIMER_ABSTIME و TFD_TIMER_CANCEL_ON_SET تنظیم شده‌اند).
این فیلد شامل مدت‌زمان باقی‌مانده تا انقضای بعدی تایمر است، که بر حسب ثانیه و نانوثانیه بیان می‌شود. این مقدار همواره به صورت یک مقدار نسبی بیان می‌شود، صرف‌نظر از اینکه تایمر با استفاده از پرچم TFD_TIMER_ABSTIME ایجاد شده باشد یا خیر.
این فیلد شامل فاصله تناوب تایمر، بر حسب ثانیه و نانوثانیه است. (فیلدهای it_value و it_interval شامل مقادیری هستند که فراخوانی timerfd_gettime(2) روی این توصیف‌کننده فایل بازمی‌گرداند.)

لینوکس 2.6.22.

proc(5)

2026-07-18 Linux man-pages 6.19