Provided by: manpages-es_1.55-10_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 caracteres 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).

VALOR DEVUELTO

       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.

CONFORME A

       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 utilizado  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.

VÉASE TAMBIÉN

       read(2), write(2), ferror(3), fopen(3), fread(3), fseek(3), puts(3), scanf(3), unlocked_stdio(3)