Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4921 → Rev 6099

/contrib/sdk/sources/newlib/libc/stdio/fgets.c
17,20 → 17,31
 
/*
FUNCTION
<<fgets>>---get character string from a file or stream
<<fgets>>, <<fgets_unlocked>>---get character string from a file or stream
 
INDEX
fgets
INDEX
fgets_unlocked
INDEX
_fgets_r
INDEX
_fgets_unlocked_r
 
ANSI_SYNOPSIS
#include <stdio.h>
char *fgets(char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>);
 
#define _GNU_SOURCE
#include <stdio.h>
char *fgets_unlocked(char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>);
 
#include <stdio.h>
char *_fgets_r(struct _reent *<[ptr]>, char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>);
 
#include <stdio.h>
char *_fgets_unlocked_r(struct _reent *<[ptr]>, char *restrict <[buf]>, int <[n]>, FILE *restrict <[fp]>);
 
TRAD_SYNOPSIS
#include <stdio.h>
char *fgets(<[buf]>,<[n]>,<[fp]>)
38,7 → 49,14
int <[n]>;
FILE *<[fp]>;
 
#define _GNU_SOURCE
#include <stdio.h>
char *fgets_unlocked(<[buf]>,<[n]>,<[fp]>)
char *<[buf]>;
int <[n]>;
FILE *<[fp]>;
 
#include <stdio.h>
char *_fgets_r(<[ptr]>, <[buf]>,<[n]>,<[fp]>)
struct _reent *<[ptr]>;
char *<[buf]>;
45,15 → 63,31
int <[n]>;
FILE *<[fp]>;
 
#include <stdio.h>
char *_fgets_unlocked_r(<[ptr]>, <[buf]>,<[n]>,<[fp]>)
struct _reent *<[ptr]>;
char *<[buf]>;
int <[n]>;
FILE *<[fp]>;
 
DESCRIPTION
Reads at most <[n-1]> characters from <[fp]> until a newline
is found. The characters including to the newline are stored
in <[buf]>. The buffer is terminated with a 0.
 
The <<_fgets_r>> function is simply the reentrant version of
<<fgets>> and is passed an additional reentrancy structure
pointer: <[ptr]>.
<<fgets_unlocked>> is a non-thread-safe version of <<fgets>>.
<<fgets_unlocked>> may only safely be used within a scope
protected by flockfile() (or ftrylockfile()) and funlockfile(). This
function may safely be used in a multi-threaded program if and only
if they are called while the invoking thread owns the (FILE *)
object, as is the case after a successful call to the flockfile() or
ftrylockfile() functions. If threads are disabled, then
<<fgets_unlocked>> is equivalent to <<fgets>>.
 
The functions <<_fgets_r>> and <<_fgets_unlocked_r>> are simply
reentrant versions that are passed the additional reentrant structure
pointer argument: <[ptr]>.
 
RETURNS
<<fgets>> returns the buffer passed to it, with the data
filled in. If end of file occurs with some data already
65,6 → 99,8
that <<fgets>> returns all of the data, while <<gets>> removes
the trailing newline (with no indication that it has done so.)
 
<<fgets_unlocked>> is a GNU extension.
 
Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
<<lseek>>, <<read>>, <<sbrk>>, <<write>>.
*/
74,6 → 110,11
#include <string.h>
#include "local.h"
 
#ifdef __IMPL_UNLOCKED__
#define _fgets_r _fgets_unlocked_r
#define fgets fgets_unlocked
#endif
 
/*
* Read at most n-1 characters from the given file.
* Stop when a newline has been read, or the count runs out.