Read a string of wide characters from a stream
Synopsis:
#include <wchar.h>
wchar_t * fgetws( wchar_t * buf,
int n,
FILE * fp );
Arguments:
- buf
- A pointer to a buffer in which fgetws() can store the
wide characters that it reads.
- n
- The maximum number of characters to read.
- fp
- The stream from which to read the characters.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The fgetws() function reads a string of wide characters from the stream specified by fp, and stores them in the array specified by buf.
It stops reading wide characters when one of the following occurs:
- the end-of-file is reached
- a newline ('\n') character is read
- n-1 characters have been read
The fgetws() function places a NUL at the end of the string.
Note:
Don't assume all strings have newline characters.
A newline character isn't present when more than
n-1 characters occur before the newline.
Also, a newline character might not appear as the last character in a
file when the end-of-file is reached.
Returns:
- If successful, fgetws() returns buf.
- If the end-of-file indicator for the stream is set or the stream is at the end of the file,
fgetws() sets the end-of-file indicator and returns NULL.
- If an error occurred, fgetws() sets the error indicator for the stream, sets
errno,
and returns NULL.
Note:
Use
feof()
or
ferror()
to distinguish an end-of-file condition from an error.
Errors:
- EAGAIN
- The O_NONBLOCK flag is set for fp and would have been
blocked by this operation.
- EBADF
- The file descriptor for fp isn't valid for reading.
- EINTR
- A signal terminated the read operation; no data was transferred.
- EIO
- Either a physical I/O error has occurred, or the process is in the background and is being ignored or blocked.
- EOVERFLOW
- Cannot read at or beyond the offset maximum for this stream.
Classification:
ANSI,
POSIX 1003.1
Safety: |
|
Cancellation point |
Yes |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |