GETDELIM man page on Archlinux

Man page or keyword search:  
man Server   11224 pages
apropos Keyword Search (all sections)
Output format
Archlinux logo
[printable version]

GETDELIM(3P)		   POSIX Programmer's Manual		  GETDELIM(3P)

       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the	 corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.

       getdelim, getline — read a delimited record from stream

       #include <stdio.h>

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

       The getdelim() function shall read from stream until  it	 encounters  a
       character  matching  the delimiter character. The delimiter argument is
       an int, the value of which the application shall ensure is a  character
       representable  as  an  unsigned char of equal value that terminates the
       read process. If the delimiter argument has any other value, the behav‐
       ior is undefined.

       The  application	 shall	ensure	that *lineptr is a valid argument that
       could be passed to the free() function. If *n is non-zero, the applica‐
       tion  shall  ensure that *lineptr either points to an object of size at
       least *n bytes, or is a null pointer.

       The size of the object pointed to by *lineptr shall be increased to fit
       the incoming line, if it isn't already large enough, including room for
       the delimiter and a terminating NUL. The characters read, including any
       delimiter,  shall  be  stored  in  the string pointed to by the lineptr
       argument, and a terminating NUL added when the delimiter or end of file
       is encountered.

       The  getline()  function shall be equivalent to the getdelim() function
       with the delimiter character equal to the <newline> character.

       The getdelim() and getline() functions may mark the  last  data	access
       timestamp  of the file associated with stream for update. The last data
       access timestamp shall be marked for update  by	the  first  successful
       execution  of  fgetc(),	fgets(), fread(), fscanf(), getc(), getchar(),
       getdelim(), getline(), gets(), or scanf()  using	 stream	 that  returns
       data not supplied by a prior call to ungetc().

       Upon  successful	 completion,  the  getline()  and getdelim() functions
       shall return the number of characters written into the buffer,  includ‐
       ing  the	 delimiter  character  if  one was encountered before EOF, but
       excluding the terminating NUL character. If no  characters  were	 read,
       and  the	 end-of-file indicator for the stream is set, or if the stream
       is at end-of-file, the end-of-file indicator for the  stream  shall  be
       set  and	 the  function	shall return −1. If an error occurs, the error
       indicator for the stream shall be set, and the function shall return −1
       and set errno to indicate the error.

       For  the	 conditions under which the getdelim() and getline() functions
       shall fail and may fail, refer to fgetc().

       In addition, these functions shall fail if:

       EINVAL lineptr or n is a null pointer.

       ENOMEM Insufficient memory is available.

       These functions may fail if:

	      More than {SSIZE_MAX} characters were read without  encountering
	      the delimiter character.

       The following sections are informative.

	   #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)
	       while ((read = getline(&line, &len, fp)) != -1) {
		   printf("Retrieved line of length %zu :\n", read);
		   printf("%s", line);
	       if (ferror(fp)) {
		   /* handle error */
	       return 0;

       Setting	*lineptr  to  a	 null pointer and *n to zero are allowed and a
       recommended way to start parsing a file.

       The ferror() or feof() functions should be used to distinguish  between
       an error condition and an end-of-file condition.

       Although	 a NUL terminator is always supplied after the line, note that
       strlen(*lineptr) will be smaller than the return value if the line con‐
       tains embedded NUL characters.

       These  functions	 are widely used to solve the problem that the fgets()
       function has with long lines. The functions automatically  enlarge  the
       target buffers if needed. These are especially useful since they reduce
       code needed for applications.


       Section 2.5, Standard I/O Streams, fgetc(), fgets(), free()

       The Base Definitions volume of POSIX.1‐2008, <stdio.h>

       Portions of this text are reprinted and reproduced in  electronic  form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology
       -- Portable Operating System Interface (POSIX),	The  Open  Group  Base
       Specifications Issue 7, Copyright (C) 2013 by the Institute of Electri‐
       cal and Electronics Engineers,  Inc  and	 The  Open  Group.   (This  is
       POSIX.1-2008  with  the	2013  Technical Corrigendum 1 applied.) In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained	online
       at .

       Any  typographical  or  formatting  errors that appear in this page are
       most likely to have been introduced during the conversion of the source
       files  to  man page format. To report such errors, see https://www.ker‐ .

IEEE/The Open Group		     2013			  GETDELIM(3P)

List of man pages available for Archlinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net