توصیفگر پرونده
در علوم رایانه توصیفگر پرونده[و 1] معمولاً یک عدد صحیح است که برای اشاره به یک پروندهٔ بازشده به کار میرود. توابع رایجی که از توصیفگر پرونده استفاده میکنند عبارتند از بازکردن، بستن، نوشتن و خواندن. برای نمونه تابع باز کردن (open) پس از باز کردن یک پرونده، یک توصیفگر پرونده که یک عدد صحیح بیهمتا میان پروندههای بازشده است برمیگرداند. این توصیفگر پرونده را میتوان همانند یک اشارهگر در غالب یک آرگومان به دیگر توابع داد. در صورتی که خطایی در این توابع رخ دهد مقدار -۱ را بازمیگردانند.[1]
کلیهٔ روالهای یونیکس که با پروندهها سر و کار دارند برای شناسایی پروندهای که روی آن کار میکنند از اشارهگر یا توصیفگر پرونده استفاده میکنند. در این روش کلیهٔ فراخوانیهای سیستم که با پروندهها تعامل دارند یک توصیفگر پرونده میگیرند یا برمیگردانند. این توصیفگر معمولاً یک عدد صحیح کوچک بین ۰ تا ۲۵۵ است.[2] این عدد شاخصی است که محل پرونده را در جدول توصیفگر پرونده[و 2] توصیف میکند که این جدول برای هر پروسه جداگانه تعریف میشود و مقیم هسته[و 3] است. با وجود اینکه امکان استفاده از توصیفگرهای پروندهٔ یک پروسه در پروسهٔ دیگر وجود ندارد، اما بسیاری از سیستمهای یونیکس امکان انتقال توصیفگر پرونده بین پروسهها را از راه یک سوکت[و 4] فراهم میکنند.[3] با باز کردن هر پرونده یک اشارهگر به ساختارهای درونی دادهها برای آن پرونده درون جدول توصیفگر پرونده ایجاد میشود و شاخص عددی آن پرونده در جدول توسط تابعی که فراخوانی را انجام داده است برگردانده میشود. برنامههای کاربردی میتوانند تنها بر پایهٔ توصیفگر پرونده با پروندهها در ارتباط باشند و سایر جزئیات لازم را سیستمعامل با دنبال کردن اشارهگری که در جدول آمده انجام میدهد.[4]
جستارهای وابسته
- پازیکس
- دیمن (نرمافزار)
- فراخوان سیستمی
واژهنامه
- File descriptor
- file descriptor table
- kernel-resident
- socket
منابع
- Yocom, Nathan; Turner, John; Davis, Keir (2004). The Definitive Guide to Linux Network Programming. Apress. ISBN 978-1-59059-322-6. Retrieved 2013-04-09.
- Singh, Amit (2006). Mac OS X Internals: A Systems Approach. Addison-Wesley Professional. ISBN 978-0-13-270226-3. Retrieved 2013-04-09.
- Linden, Peter van der (1994). Expert C Programming[: Deep C Secrets. Prentice Hall Professional. ISBN 978-0-13-177429-2. Retrieved 2013-04-09.
- Erickson, Jon (2008). Hacking: the art of exploitation. No Starch Press. ISBN 978-1-59327-144-2. Retrieved 2013-04-09.