getline, getdelim Subroutines
Finalità
Legge un record delimitato da un flusso.
Libreria
Libreria standard (libc.a)
Sintassi
#include <stdio.h>
ssize_t getdelim(char **lineptr, size_t *n, int delimiter, FILE *stream);
ssize_t getline(char **lineptr, size_t *n, FILE *stream); Descrizione
La funzione getdelim si legge dal flusso fino a quando non incontra un carattere corrispondente al carattere delimitatore. L'argomento delimitatore è un int, il valore di cui l'applicazione garantirà è un carattere rappresentabile come un carattere non firmato di uguale valore che termina il processo di lettura. Se l'argomento delimitatore ha qualsiasi altro valore, il funzionamento è indefinito.
L'applicazione garantirà che * lineptr sia un argomento valido che potrebbe essere passato alla funzione free (). Se * n è non zero, l'applicazione garantisce che * lineptr punti ad un oggetto di almeno * n byte.
La funzione getline () è equivalente alla funzione getdelim () con carattere delimitatore uguale al ' \n' carattere.
Valori di ritorno
Al completamento di successo, la funzione getdelim () restituirà il numero di caratteri scritti nel buffer, incluso il carattere delimitatore se uno è stato riscontrato prima di EOF. Altrimenti, restituisce -1 e imposta l'errno per indicare l'errore.
Codici di errore
La funzione potrebbe non riuscire se:
| Elemento | Descrizione |
|---|---|
| [ EINVAL] | lineptr o n sono puntatori nulli |
| [ ENOMEM] | La memoria insufficiente è disponibile. |
| [ EINVAL] | Stream non è un descrittore di file valido. |
| [ EOVERFLOW] | Più di {SSIZE_MAX} i caratteri sono stati letti senza incontrare il carattere delimitatore. |