Provided by: manpages-nl-dev_4.21.0-2_all bug

NAAM

       ioctl - manipuleer apparaat

BIBLIOTHEEK

       Standard C bibliotheek  (libc, -lc)

SAMENVATTING

       #include <sys/ioctl.h>

       int ioctl(int bi, unsigned long verzoek, ...);

BESCHRIJVING

       De  ioctl()  functie  manipuleert  de  onderliggende  apparaat  parameters van speciale bestanden. In heb
       bijzonder vele werkings eigenschappen van  teken  speciale  bestanden  ("terminals"  {terminals})  kunnen
       bestuurd worden met ioctl() verzoeken. Het argument bi moet een open bestands indicator zijn.

       Het  tweede argument is een apparaat-afhankelijke aanvraag code. Het derde argument is een wijzer (zonder
       type) naar het geheugen. Traditioneel is het char *argp (van de tijd  voordat void * geldig  C  was),  en
       het wordt zo genoemd in deze discussie.

       Een  ioctl() verzoek heeft in zichzelf gecodeerd of het argument een in parameter of uit parameter is, en
       de grootte van het argument argp in bytes. Macro's en definities die gebruikt worden in het  opgeven  van
       een ioctl() verzoek zijn te vinden in het bestand <sys/ioctl.h>.

EIND WAARDE

       Meestal  wordt  bij succes een nul teruggegeven. Een aantal ioctl() aanvragen gebruiken de uitvoer waarde
       als een uitvoer parameter en geven  een  niet-negatieve  waarde  terug  bij  succes.Bij  falen  wordt  -1
       teruggegeven en errnowordt overeenkomstig gezet.

FOUTEN

       EBADF  bb is geen geldige bestandsbeschrijving.

       EFAULT argp verwijst naar een ontoegankelijk geheugen gebied.

       EINVAL request of argp is ongeldig.

       ENOTTY bi is niet verbonden met een karakter speciaal apparaat.

       ENOTTY Het opgegeven verzoek gaat niet op voor het soort voorwerp waar de beschrijver bi naar wijst.

VOLDOET AAN

       Geen  enkele  standaard.  Argumenten,  uitvoerwaarden  en  semantiek van ioctl(2) wisselt naar gelang het
       betreffende  apparaat  stuurprogramma   (de  aanroep  wordt  gebruikt  als  een  goed-voor-de-rest   voor
       handelingen die niet netjes in het Unix stroom Invoer/Uitvoer model passen).

       De ioctl() systeem aanroep verscheen in Versie 7 AT&T UNIX.

OPMERKINGEN

       Om deze systeem aanroep te gebruiken moet men een open bestandsbeschrijving hebben, Vaak heeft de open(2)
       niet  gewenste neven effecten, die vermeden kunnen worden onder Linux door het meegeven van de O_NONBLOCK
       vlag.

   ioctl structure
       Ioctl commando waarden zijn 32-bits constanten. In principe zijn deze  constanten  volledig  willekeurig,
       hoewel men er enige structuur in heeft proberen in te bouwen.

       De  oude  Linux situatie bestond uit veelal 16-bit constanten, waarbij het laatste byte een serieel getal
       was, en het voorafgaande byte was de type aanduiding van het betreffende stuurprogramma. Soms werden  als
       belangrijkste  getallen gebruikt: 0x03 voor de HDIO_* ioctls, 0x06 voor de LP* ioctls. En soms werden een
       of meerdere ASCII tekens  gebruikt. Bij voorbeeld, TCGETS heeft waarde x00005401, met 0x54 = 'T' wijzende
       op het terminal stuurprogramma, en CYGETTIMEOUT heeft  waarde   0x00435906,  met  0x43  0x59  =  'C'  'Y'
       wijzende op het cyclade stuurprogramma.

       Later  (0.98p5)  werd  meer  informatie  in het getal ingebouwd. Een heeft 2 richting bits (00: geen, 01:
       schrijf, 10: lees, 11: lees/schrijf) gevolgd door de 14 bits  grootte  (aangevende  de  grootte  van  het
       argument),  gevolgd  door  een  8-bit type (die verzamelen de ioctls in groepen met een gemeenschappelijk
       doel or een gemeenschappelijk stuurprogramma), en een 8-bit serieel getal,

       De  macro´s  die  de  structuur  beschrijven   staan   in   <asm/ioctl.h>   en   zijn   _IO(type,nr)   en
       {_IOR,_IOW,_IOWR}(type,nr,size).   Ze  gebruiken  sizeof(size) waarbij dat een verkeerde benaming is: dit
       derde argument is een  data type.

       Let op dat de grootte bits erg onbetrouwbaar zijn: in veel gevallen  zijn  ze  verkeerd,  ofwel  door  de
       macro´s met fouten die sizeof(sizeof(struct)) gebruiken, ofwel door gebruik van geërfde waarden.

       Dus,  het  lijkt  erop  dat  de nieuwe structuur alleen nadelen gaf: het helpt in bij controles, maar het
       zorgt voor variërende waarden voor de diverse architecturen.

ZIE OOK

       execve(2),   fcntl(2),   ioctl_console(2),   ioctl_fat(2),    ioctl_ficlone(2),    ioctl_ficlonerange(2),
       ioctl_fideduperange(2),  ioctl_fslabel(2), ioctl_getfsmap(2), ioctl_iflags(2), ioctl_ns(2), ioctl_tty(2),
       ioctl_userfaultfd(2), open(2), sd(4), tty(4)

VERTALING

       De Nederlandse vertaling van deze handleiding is geschreven door Jos  Boersema  <joshb@xs4all.nl>,  Mario
       Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

       Deze  vertaling  is  vrije  documentatie;  lees  de GNU General Public License Version 3 of later over de
       Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

       Indien U fouten in de vertaling van deze handleiding zou  vinden,  stuur  een  e-mail  naar  debian-l10n-
       dutch@lists.debian.org.

Linux man-pagina's 6.03                          5 februari 2023                                        ioctl(2)