summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdio/getline.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-06-21 18:29:23 +0000
committerJeff Johnston <jjohnstn@redhat.com>2002-06-21 18:29:23 +0000
commitd427d09204c97df14607149e94a1da9beddd76ab (patch)
tree364e68aebab51cfb339ff2b0f21a1f97d22a131d /newlib/libc/stdio/getline.c
parent35728d4f142bbab0d8a963561d76b9066421b1ac (diff)
downloadcygnal-d427d09204c97df14607149e94a1da9beddd76ab.tar.gz
cygnal-d427d09204c97df14607149e94a1da9beddd76ab.tar.bz2
cygnal-d427d09204c97df14607149e94a1da9beddd76ab.zip
2002-06-21 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/stdio.h (__getline, __getdelim): New prototypes. * libc/include/time.h [HAVE_GETDATE](getdate, getdate_r): Ditto. [HAVE_GETDATE](getdate_err): New error code. * libc/stdio/Makefile.am: Add support for getline.c and getdelim.c. * libc/stdio/Makefile.in: Regenerated. * libc/stdio/getdelim.c: New file. * libc/stdio/getline.c: Ditto. * libc/sys/linux/Makefile.am: Add support for getdate.c, getdate_err.c and ntp_gettime.c. Also add AM_CFLAGS to point to libc/stdio. * libc/sys/linux/Makefile.in: Regenerated. * libc/sys/linux/getdate.c: New file. * libc/sys/linux/getdate_err.c: Ditto. * libc/sys/linux/ntp_gettime.c: Ditto. * libc/sys/linux/time.c (adjtimex, ntp_adjtime): New functions. * libc/sys/linux/sys/stdio.h (getline, getdelim): New macros.
Diffstat (limited to 'newlib/libc/stdio/getline.c')
-rw-r--r--newlib/libc/stdio/getline.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/newlib/libc/stdio/getline.c b/newlib/libc/stdio/getline.c
new file mode 100644
index 000000000..741a7dc77
--- /dev/null
+++ b/newlib/libc/stdio/getline.c
@@ -0,0 +1,54 @@
+/*
+FUNCTION
+<<getline>>---read a line from a file
+
+INDEX
+ getline
+
+ANSI_SYNOPSIS
+ #include <stdio.h>
+ ssize_t getline(char **<[bufptr]>, size_t *<[n]>, FILE *<[fp]>);
+
+TRAD_SYNOPSIS
+ #include <stdio.h>
+ ssize_t getline(<[bufptr]>, <[n]>, <[fp]>)
+ char **<[bufptr]>;
+ size_t *<[n]>;
+ FILE *<[fp]>;
+
+DESCRIPTION
+<<getline>> reads a file <[fp]> up to and possibly including the
+newline character. The line is read into a buffer pointed to
+by <[bufptr]> and designated with size *<[n]>. If the buffer is
+not large enough, it will be dynamically grown by <<getdelim>>.
+As the buffer is grown, the pointer to the size <[n]> will be
+updated.
+
+<<getline>> is equivalent to getdelim(bufptr, n, '\n', fp);
+
+RETURNS
+<<getline>> returns <<-1>> if no characters were successfully read,
+otherwise, it returns the number of bytes successfully read.
+at end of file, the result is nonzero.
+
+PORTABILITY
+<<getline>> is a glibc extension.
+
+No supporting OS subroutines are directly required.
+*/
+
+/* Copyright 2002, Red Hat Inc. - all rights reserved */
+
+#include <stdio.h>
+
+extern ssize_t __getdelim (char **, size_t *, int, FILE *);
+
+ssize_t
+__getline (lptr, n, fp)
+ char **lptr;
+ size_t *n;
+ FILE *fp;
+{
+ return __getdelim (lptr, n, '\n', fp);
+}
+