Man page - getline(3)

Packages contains this manual

Available languages:

en fr pl ja ru ro

Manual

getline

NOM
BIBLIOTHÈQUE
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
ATTRIBUTS
STANDARDS
HISTORIQUE
EXEMPLES
VOIR AUSSI
TRADUCTION

NOM

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

BIBLIOTHÈQUE

BibliothĂšque C standard ( libc , -lc )

SYNOPSIS

#include <stdio.h>

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

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

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

DESCRIPTION

getline () lit une ligne entiĂšre dans flux et stocke l’adresse du tampon contenant le texte dans *lineptr . Le tampon se termine par un octet NULL et inclut le caractĂšre saut de ligne, si un tel sĂ©parateur a Ă©tĂ© trouvĂ©.

Si *lineptr est positionnĂ© Ă  NULL avant l’appel, la routine getline () allouera un tampon pour stocker la ligne. Ce tampon devra ĂȘtre libĂ©rĂ© par le programme utilisateur mĂȘme si getline () Ă©choue.

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 stocker 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 du 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 NULL final ('\0'). Cette valeur peut ĂȘtre utilisĂ©e afin de traiter les octets NULL 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 est dĂ©fini pour indiquer l’erreur.

Si *lineptr a Ă©tĂ© positionnĂ© Ă  NULL avant l’appel, le tampon doit ĂȘtre libĂ©rĂ© par le programme utilisateur mĂȘme en cas d’échec.

ERREURS

EINVAL

ParamĂštres erronĂ©s ( n ou lineptr valent NULL, ou bien flux n’est pas valable).

ENOMEM

Échec de l’allocation ou de la rĂ©allocation du tampon de ligne.

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes (7).

Image grohtml-3873317-1.png

STANDARDS

POSIX.1-2008.

HISTORIQUE

GNU, POSIX.1-2008.

EXEMPLES

#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, "Utilisation : %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("RĂ©ception d’une ligne de longueur %zd:\n", nread);
fwrite(line, nread, 1, stdout);
}
free(line);
fclose(stream);
exit(EXIT_SUCCESS);
}

VOIR AUSSI

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

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Frédéric Hantrais <fhantrais@gmail.com> et Grégoire Scano <gregoire.scano@malloc.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .