Provided by: manpages-es-dev_4.18.1-1_all bug

NOMBRE

       getline, getdelim - entrada de cadena delimitada

BIBLIOTECA

       Biblioteca Estándar C (libc, -lc)

SINOPSIS

       #include <stdio.h>

       ssize_t getline(char **restrict lineptr, size_t *restrict n,
                       FILE *restrict stream);
       ssize_t getdelim(char **restrict lineptr, size_t *restrict n,
                       int delim, FILE *restrict stream);

   Requisitos de Macros de Prueba de Características para glibc (véase feature_test_macros(7)):

       getline(), getdelim():
           Desde glibc 2.10:
               _POSIX_C_SOURCE >= 200809L
           Antes de glibc 2.10:
               _GNU_SOURCE

DESCRIPCIÓN

       getline()   reads an entire line from stream, storing the address of the buffer containing
       the text into *lineptr.  The buffer is null-terminated and includes the newline character,
       if one was found.

       If  *lineptr  is  set  to NULL before the call, then getline()  will allocate a buffer for
       storing the line.  This buffer should be freed by  the  user  program  even  if  getline()
       failed.

       Alternatively,   before   calling   getline(),   *lineptr  can  contain  a  pointer  to  a
       malloc(3)-allocated buffer *n bytes in size.  If the buffer is not large  enough  to  hold
       the line, getline()  resizes it with realloc(3), updating *lineptr and *n as necessary.

       In  either  case,  on  a  successful  call, *lineptr and *n will be updated to reflect the
       buffer address and allocated size respectively.

       getdelim() funciona como getline(), salvo que se puede  especificar  otro  delimitador  de
       línea  distinto  de nueva línea en el argumento delimiter. Como con getline(), no se añade
       un carácter delimitador si no hay ninguno presente en la entrada antes de que  se  alcanze
       el fin del fichero.

VALOR DEVUELTO

       On success, getline()  and getdelim()  return the number of characters read, including the
       delimiter character, but not including the terminating null byte ('\0').  This  value  can
       be used to handle embedded null bytes in the line read.

       Both  functions return -1 on failure to read a line (including end-of-file condition).  In
       the event of a failure, errno is set to indicate the error.

       If *lineptr was set to NULL before the call, then the buffer should be freed by  the  user
       program even on failure.

ERRORES

       EINVAL Parámetros incorrectos (n o lineptr son NULL, o stream no es válido).

       ENOMEM Allocation or reallocation of the line buffer failed.

ATRIBUTOS

       Para obtener una explicación de los términos usados en esta sección, véase attributes(7).

       ┌────────────────────────────────────────────────┬────────────────────┬───────────────────┐
       │InterfazAtributoValor             │
       ├────────────────────────────────────────────────┼────────────────────┼───────────────────┤
       │getline(), getdelim()                           │ Seguridad del hilo │ Multi-hilo seguro │
       └────────────────────────────────────────────────┴────────────────────┴───────────────────┘

ESTÁNDARES

       Both getline()  and getdelim()  were originally GNU extensions.  They were standardized in
       POSIX.1-2008.

EJEMPLOS

       #define _GNU_SOURCE
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(int argc, char *argv[])
       {
           FILE *stream;
           char *line = NULL;
           size_t len = 0;
           ssize_t nread;

           if (argc != 2) {
               fprintf(stderr, "Usage: %s <file>\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           stream = fopen(argv[1], "r");
           if (stream == NULL) {
               perror("fopen");
               exit(EXIT_FAILURE);
           }

           while ((nread = getline(&line, &len, stream)) != -1) {
               printf("Retrieved line of length %zd:\n", nread);
               fwrite(line, nread, 1, stdout);
           }

           free(line);
           fclose(stream);
           exit(EXIT_SUCCESS);
       }

VÉASE TAMBIÉN

       read(2), fgets(3), fopen(3), fread(3), scanf(3)

TRADUCCIÓN

       La traducción al español de esta página del manual  fue  creada  por  Miguel  Pérez  Ibars
       <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>

       Esta  traducción  es  documentación  libre;  lea  la  GNU General Public License Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ o posterior con respecto a las condiciones  de
       copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción de esta página del manual, envíe un correo
       electrónico a ⟨debian-l10n-spanish@lists.debian.org⟩.