Pangalan
ioctl - control device
Buod
# isama ang
int ioctl (int d , int request , ...);
Paglalarawan
Ang pag-andar ng ioctl ay manipulahin ang mga nakapailalim na parameter ng aparato ng mga espesyal na file. Sa partikular, maraming mga katangian ng mga katangian ng mga espesyal na file (halimbawa, mga terminal) ay maaaring kontrolado ng mga kahilingan ng ioctl . Ang argument d ay dapat na isang bukas na file descriptor.
Ang pangalawang argument ay isang code na humihiling ng aparato na umaasa sa aparato. Ang pangatlong argumento ay isang hindi naipasok pointer sa memorya. Ito ay ayon sa kaugalian na char * argp (mula sa mga araw bago ang walang bisa * ay wastong C), at ito ay pinangalanan para sa talakayang ito.
Naka-encode ang isang kahilingan ng ioctl dito kung ang argument ay nasa parameter o out parameter, at ang laki ng argument argp sa byte. Ang mga Macro at tumutukoy sa ginamit na tumutukoy sa isang kahilingan ng ioctl ay matatagpuan sa file na
Ibalik ang Halaga
Karaniwan, sa tagumpay zero ay ibinalik. Ang ilang mga ioctls ay gumagamit ng halaga ng pagbabalik bilang parameter ng output at nagbabalik ng di-negatibong halaga sa tagumpay. Sa error, -1 ay ibinalik, at errno ay nakatakda nang angkop.
Mga Mali
EBADF
d ay hindi isang wastong tagapaglarawan.
EFAULT
Ang mga argp ay tumutukoy sa isang hindi maa-access na lugar ng memorya.
Nagtatangkilik
d ay hindi nauugnay sa isang espesyal na aparato ng character.
Nagtatangkilik
Ang tinukoy na kahilingan ay hindi nalalapat sa uri ng bagay na tinukoy ng mga tagapaglarawan ng d .
EINVAL
Ang kahilingan o argp ay hindi wasto.
Sumasang-ayon ka
Walang isang pamantayan. Ang mga pangangatwiran, pagbabalik, at mga semantika ng ioctl (2) ay nag-iiba ayon sa driver ng device na pinag-uusapan (ang tawag ay ginagamit bilang isang catch-lahat para sa mga operasyon na hindi malinis na magkasya sa I / O modelo ng Unix stream). Tingnan ang ioctl_list (2) para sa isang listahan ng marami sa mga kilalang tawag sa ioctl . Ang tawag na function ng ioctl ay lumabas sa Bersyon 7 AT & T Unix.