توصیف‌گر پرونده

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در علوم رایانه توصیف‌گر پرونده[و ۱] معمولاً یک عدد صحیح است که برای اشاره به یک پروندهٔ بازشده به کار می‌رود. توابع رایجی که از توصیف‌گر پرونده استفاده می‌کنند عبارتند از بازکردن، بستن، نوشتن و خواندن. برای نمونه تابع بازکردن (open) پس از بازکردن یک پرونده، یک توصیف‌گر پرونده که یک عدد صحیح بی‌همتا میان پرونده‌های بازشده است برمی‌گرداند. این توصیف‌گر پرونده را می‌توان همانند یک اشاره‌گر در غالب یک آرگومان به دیگر توابع داد. در صورتی که خطایی در این توابع رخ دهد مقدار -۱ را بازمی‌گردانند.[۱]

کلیهٔ روال‌های یونیکس که با پرونده‌ها سر و کار دارند برای شناسایی پرونده‌ای که روی آن کار می‌کنند از اشاره‌گر یا توصیف‌گر پرونده استفاده می‌کنند. در این روش کلیهٔ فراخوانی‌های سیستم که با پرونده‌ها تعامل دارند یک توصیف‌گر پرونده می‌گیرند یا برمی‌گردانند. این توصیف‌گر معمولاً یک عدد صحیح کوچک بین ۰ تا ۲۵۵ است.[۲] این عدد شاخصی است که محل پرونده را در جدول توصیف‌گر پرونده[و ۲] توصیف می‌کند که این جدول برای هر پروسه جداگانه تعریف می‌شود و مقیم هسته[و ۳] است. با وجود اینکه امکان استفاده از توصیف‌گرهای پروندهٔ یک پروسه در پروسهٔ دیگر وجود ندارد، اما بسیاری از سیستم‌های یونیکس امکان انتقال توصیف‌گر پرونده بین پروسه‌ها را از راه یک سوکت[و ۴] فراهم می‌کنند.[۳] با بازکردن هر پرونده یک اشاره‌گر به ساختارهای درونی داده‌ها برای آن پرونده درون جدول توصیف‌گر پرونده ایجاد می‌شود و شاخص عددی آن پرونده در جدول توسط تابعی که فراخوانی را انجام داده است برگردانده می‌شود. برنامه‌های کاربردی می‌توانند تنها بر پایهٔ توصیف‌گر پرونده با پرونده‌ها در ارتباط باشند و سایر جزئیات لازم را سیستم‌عامل با دنبال کردن اشاره‌گری که در جدول آمده انجام می‌دهد.[۴]

جستارهای وابسته[ویرایش]

واژه‌نامه[ویرایش]

  1. File descriptor
  2. file descriptor table
  3. kernel-resident
  4. socket

منابع[ویرایش]