Provided by: manpages-es_1.55-4_all bug
 

NOMBRE

        fgetc,  fgets,  getc,  getchar,  gets, ungetc - entrada de caracteres y
        cadenas de ellos
 

SINOPSIS

        #include <stdio.h>
 
        int fgetc(FILE *flujo);
        char *fgets(char *s, int tam, FILE *flujo);
        int getc(FILE *flujo);
        int getchar(void);
        char *gets(char *s);
        int ungetc(int c, FILE *flujo);
 

DESCRIPCI N

        fgetc() lee el siguiente carácter  de  flujo  y  lo  devuelve  como  un
        unsigned  char  modelado a un int, o EOF al llegar al final del flujo o
        en caso de error.
 
        getc() es equivalente a fgetc() excepto en el hecho de que puede  estar
        implementado como una macro que evalúe flujo más de una vez.
 
        getchar() es equivalente a getc(stdin).
 
        gets()  lee  una línea de stdin y la guarda en el búfer al que apunta s
        hasta que se encuentre bien un carácter  terminador  nueva-línea,  bien
        EOF,  al  cual  reemplaza con      \0     .  No se hace ninguna comprobación de
        desbordamiento del búfer (vea FALLOS más abajo).
 
        fgets() lee como mucho uno menos de tam  caracteres  del  flujo  y  los
        guarda  en  el búfer al que apunte s.  La lectura se para tras un EOF o
        una nueva-línea. Si se lee una nueva-línea, se guarda en el búfer. Tras
        el último carácter en el búfer se guarda un      \0     .
 
        ungetc()  pone  c  de  vuelta en flujo, modelado a unsigned char, donde
        queda disponible para una posterior operación de  lectura.  Los  carac‐
        teres  puestos  en  el  flujo serán devueltos en orden inverso; sólo se
        garantiza que se pueda devolver al flujo un carácter.
 
        Las llamadas a las funciones descritas aquí pueden mezclarse  unas  con
        otras  y  con  llamadas  a  otras funciones de entrada de la biblioteca
        stdio para el mismo flujo de entrada.
 
        Para las versiones no-bloqueantes, véase unlocked_stdio(3).
        fgetc(), getc()  y  getchar()  devuelven  el  carácter  leído  como  un
        unsigned  char modelado a un int o EOF al llegar al final de la entrada
        o en caso de error.
 
        gets() y fgets() devuelven s en caso de éxito, y NULL en caso de  error
        o  cuando  se llegue al final del fichero mientras que no se haya leído
        ningún carácter.
 
        ungetc() devuelve c en caso de éxito, o EOF en caso de error.
        ANSI - C, POSIX.1
 

FALLOS

        No use nunca gets().  Puesto que es imposible  saber,  sin  conocer  de
        antemano  los  datos, cuántos caracteres va a leer gets(), y puesto que
        gets() continuará guardando caracteres una vez alcanzado el  final  del
        búfer, su empleo es extremadamente peligroso. Muchas veces ha sido uti‐
        lizado para comprometer la seguridad de un sistema. En su lugar  emplee
        fgets() siempre que pueda.
 
        No  es  recomendable  mezclar llamadas a las funciones de entrada de la
        biblioteca stdio con llamadas de bajo nivel a read() para el descriptor
        de  fichero  asociado  con  el  flujo  de entrada; los resultados serán
        indefinidos y probablemente no los deseados.
        read(2), write(2), ferror(3), fopen(3),  fread(3),  fseek(3),  puts(3),
        scanf(3), unlocked_stdio(3)