fgetws()

Updated: April 19, 2023

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 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:

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