Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       getline, getdelim - Saisie de chaîne délimitée

SYNOPSIS

       #include <stdio.h>

       ssize_t getline(char **lineptr, size_t *n, FILE *stream);

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

   Exigences    de    macros    de   test   de   fonctionnalités   pour   la   glibc   (consultez
   feature_test_macros(7)) :

       getline(), getdelim() :
           Depuis la glibc 2.10 :
               _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700
           Avant la glibc 2.10 :
               _GNU_SOURCE

DESCRIPTION

       getline() lit une ligne entière dans stream et stocke l'adresse  du  tampon  contenant  le
       texte  dans  *lineptr.  Le  tampon  se termine par un caractère nul et inclut le caractère
       saut-de-ligne, si un tel séparateur a été trouvé.

       Si *lineptr est positionné à NULL, et si *n a  la  valeur  0  avant  l'appel,  la  routine
       getline()  allouera  un  tampon  pour  sauver la ligne. Ce tampon devra être libéré par le
       programme utilisateur.

       Alternativement, avant d'appeler getline(), *lineptr peut contenir  un  pointeur  vers  un
       tampon  de *n octets alloué par malloc(3). Si le tampon n'est pas suffisant pour sauver la
       ligne saisie, getline() le redimensionnera avec realloc(3), mettant à jour *lineptr et  *n
       comme il se doit.

        Quoi  qu'il  en  soit,  en cas de succès, *lineptr et *n seront mis à jour afin de rendre
       compte respectivement de l'adresse et de la taille du tampon.

       getdelim()  fonctionne  comme  getline(),  si  ce  n'est  qu'un  séparateur  différent  de
       saut-de-ligne peut être spécifié en tant qu'argument delimiter. Tout comme avec getline(),
       aucun séparateur n'est ajouté s'il n'y en avait pas dans l'entrée  avant  que  la  fin  du
       fichier ne soit atteinte.

VALEUR RENVOYÉE

       En  cas  de  succès,  getline()  et  getdelim()  renvoient  le  nombre  de caractères lus,
       séparateur inclus, mais sans compter l'octet nul final  ('\0').  Cette  valeur  peut  être
       utilisée afin de traiter les octets nuls insérés dans la ligne lue.

       Les deux fonctions renvoient -1 en cas d'échec de lecture de la ligne (condition de fin de
       fichier incluse). En cas d'erreur, errno permet d'identifier la cause de l'erreur.

ERREURS

       EINVAL Paramètres erronés (n ou lineptr valent NULL, ou bien stream n'est pas valide).

VERSIONS

       Ces fonctions sont présentes depuis la libc 4.6.27.

CONFORMITÉ

       getline() tout comme getdelim() sont des extensions GNU. Elles ont été standardisées  dans
       POSIX.1-2008.

EXEMPLE

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

       int
       main(void)
       {
           FILE *fp;
           char *line = NULL;
           size_t len = 0;
           ssize_t read;

           fp = fopen("/etc/motd", "r");
           if (fp == NULL)
               exit(EXIT_FAILURE);

           while ((read = getline(&line, &len, fp)) != -1) {
               printf("Réception d'une ligne de longueur %zu :\n", read);
               printf("%s", line);
           }

           free(line);
           exit(EXIT_SUCCESS);
       }

VOIR AUSSI

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

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Stéphan  Rafin  (2002), Alain Portal <http://manpagesfr.free.fr/> (2006). Florentin Duneau
       et l'équipe francophone de traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>   ou   par   un  rapport  de  bogue  sur  le  paquet
       manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de  ce  document  en  utilisant  la
       commande « man -L C <section> <page_de_man> ».