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:
-
NULL
- Failure; the stream is at the end-of-file or an error occurred
(
errno
is set).
-
buf
- Success.
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 |