آموزش لینوکس - ioctl

نام

Ioctl - دستگاه کنترل

خلاصه داستان

#include

int ioctl (int d ، int درخواست ، ...)؛

شرح

تابع Ioctl دستیار پارامترهای دستگاه های اصلی فایل های خاص است. به طور خاص، بسیاری از ویژگی های عملیاتی فایل های خاص شخصیت (مثلا پایانه ها) ممکن است با درخواست های ioctl کنترل شوند. argument d باید یک توصیفگر فایل باز باشد.

استدلال دوم یک کد درخواست وابسته به دستگاه است. استدلال سوم یک اشاره گر غیرمتعارف به حافظه است. این است که به طور سنتی char * argp (از روزهای قبل از void * معتبر C)، و به همین دلیل برای این بحث نامیده می شود.

درخواست ioctl در آن کد شده است که آیا استدلال در پارامتر پارامتر یا خروجی است ، و اندازه argument argp در بایت. ماکروها و تعاریف مورد استفاده در تعیین یک درخواست ioctl در فایل قرار دارند .

ارزش بازگشت

معمولا، در صف صفر بازگشت می شود. چند Ioctl از مقدار بازگشتی به عنوان یک پارامتر خروجی استفاده می کنند و ارزش غیرقطعی را برای موفقیت به دست می آورند. در خطا، -1 بازگشت می یابد و errno به درستی تنظیم شده است.

خطاها

EBADF

d یک توصیفگر معتبر نیست.

EFAULT

argp اشاره به یک منطقه حافظه غیر قابل دسترسی است.

انطباق

d با یک دستگاه خاص خاص کار نمی کند

انطباق

درخواست مشخص شده به نوع شی که توصیفگر d اشاره دارد اعمال نمی شود.

EINVAL

درخواست یا argp معتبر نیست

مطابق با

هیچ استانداردی وجود ندارد. Arguments، returns و semantics of ioctl (2) با توجه به راننده دستگاه مورد نظر متفاوت است (فراخوانی به عنوان یک کلاهبرداری برای عملیاتهایی که به طور مناسبی با مدل I / O جریان یونیکس مناسب نیستند) متفاوت است. Ioctl_list (2) را برای لیستی از بسیاری از فراخوانی های Ioctl شناخته شده مشاهده کنید. تماس عملکرد تابع Ioctl در Version 7 AT & T Unix ظاهر شد.