Provided by: manpages-nl-dev_4.15.0-9_all bug

NAAM

       ioctl - manipuleer apparaat

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 letters  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_ficlonerange(2),
       ioctl_fideduperange(2), ioctl_getfsmap(2),  ioctl_iflags(2),  ioctl_list(2),  ioctl_ns(2),
       ioctl_tty(2), ioctl_userfaultfd(2), open(2), sd(4), tty(4)

COLOFON

       Deze   pagina  is  onderdeel  van  release  5.13  van  het  Linux  man-pages-project.  Een
       beschrijving van het project, informatie over het melden van bugs en  de  nieuwste  versie
       van deze pagina zijn op https://www.kernel.org/doc/man-pages/ te vinden.

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.