C standard library :: stdio
getchar
Denne funktion læser det næste tegn fra stdin. Hvis end-of-file indikatoren ikke er sat og den næste byte er tilgængelig vil funktionen hente den næste byte som unsigned char og konvertere den til int. Fordi funktionen opererer med bytes vil en multi-byte char kræve flere kald til funktionen.
Vær opmærksom på at på Unix/Linux systemer lægges indtastede tegn i buffer indtil ENTER indtastes. Funktionen er derfor ikke anvendelig til at hente et vilkårligt tastetryk Dette er ikke et problem der ligger i C, men i Unix/Linux operativsystemerne. Dette vil gælde også for andre funktioner som getc og fgetc der henter input på tegn-til-tegn basis fra stdin.
Returværdi
Returnerer tegnet konverteret til int fra bytes som læses som unsigned char.
Fejl
Funktionen vil fejle hvis data behøver at læses og:
- [EAGAIN]
- [CX] O_NONBLOCK flages er sat for file descriptor bagom stream og tråden holdes tilbage i fgetc() operationen.
- [EBADF]
- [CX] File descriptor bagom stream er ikke en valid file descriptor åben for læsning.
- [EINTR]
- [CX] Læse operationen blev afbrudt af modtagelsen af et signal og ingen data blev overført.
- [EIO]
- [CX] En fysisk I/O fejl opstod, eller processen er et medlem af en baggrunds processgruppe der forsøger at skrive til den kontrollerende terminal, TOSTOP er sat, processen hverken ignorerer eller blokerer ikke SIGTTOU, og processgruppen er uden parent process. Fejlen kan også returneres af system specikikke implementeringer
- [EOVERFLOW]
- [CX] Filen er en almindelig fil og et forsøg på at læse udover offset maksimum på denne stream.