تعلم قيادة لينكس - ioctl

اسم

ioctl - جهاز التحكم

ملخص

#include

int ioctl (int d ، int request ، ...)؛

وصف

تعالج الدالة ioctl معلمات الجهاز الأساسي للملفات الخاصة. على وجه الخصوص ، يمكن التحكم في العديد من الخصائص التشغيلية للملفات الخاصة للأحرف (مثل المحطات الطرفية) مع طلبات ioctl . يجب أن تكون الوسيطة d واصف ملف مفتوح.

الوسيطة الثانية هي رمز طلب يعتمد على الجهاز. الوسيطة الثالثة هي مؤشر untyped إلى الذاكرة. إنها كلمة char * التقليدية (من الأيام السابقة للفراغ * كانت صالحة C) ، وسيتم تسميتها على هذا النحو.

تم تشفير طلب ioctl فيه سواء كانت الوسيطة معلمة أو معلمة خارج ، وحجم الوسيطة argp بالبايت. توجد وحدات الماكرو والوحدات المستخدمة في تحديد طلب ioctl في الملف .

قيمة الإرجاع

عادة ، على النجاح يتم إرجاع الصفر. تستخدم بعض ioctls قيمة الإرجاع كمعلمة إخراج وترجع قيمة غير سوية إلى النجاح. على الخطأ ، يتم إرجاع -1 ، ويتم تعيين errno بشكل مناسب.

أخطاء

EBADF

د ليس واصف صالح.

EFAULT

يشير argp إلى منطقة ذاكرة لا يمكن الوصول إليها.

ENOTTY

د لا يرتبط مع جهاز خاص حرف.

ENOTTY

لا ينطبق الطلب المحدد على نوع الكائن الذي تشير إليه واصفات d .

EINVAL

الطلب أو العفنة غير صالح.

التاكيد الى

لا يوجد معيار واحد. تختلف الوسيطات والعوائد والدلالات الخاصة بـ ioctl (2) وفقًا لبرنامج تشغيل الجهاز المعني (يتم استخدام المكالمة كمقبض للاستماع إلى العمليات التي لا تتناسب تمامًا مع طراز I / O دفق Unix ). راجع ioctl_list (2) للحصول على قائمة بالعديد من المكالمات ioctl المعروفة. ظهرت استدعاء دالة ioctl في الإصدار 7 AT & T Unix.