fgetwc_unlocked - Linux


The fgetwc_unlocked() function reads a single wide character from the specified file stream stream. It is a non-thread-safe version of fgetwc(), designed for use in multithreaded programs where locking is not necessary.


#include <stdio.h>
wint_t fgetwc_unlocked(FILE *stream);




Example 1: Reading a Single Wide Character

FILE *stream;
wint_t character;

if (stream != NULL) {
  character = fgetwc_unlocked(stream);
  // Do something with the character

Example 2: Reading a Line of Wide Characters

FILE *stream;
wint_t character;
int count = 0;

if (stream != NULL) {
  while ((character = fgetwc_unlocked(stream)) != WEOF) {
  printf("\n%d wide characters read.\n", count);

Common Issues

  • File Not Open: Ensure that the file stream stream is properly opened and readable before calling fgetwc_unlocked().
  • Invalid File Handle: If stream is an invalid file handle, fgetwc_unlocked() will return WEOF.
  • End of File: If the end of the file is reached, fgetwc_unlocked() will return WEOF.


fgetwc_unlocked() can be used in combination with other file I/O functions to perform advanced operations, such as:

  • Reading a Delimited File: Read a file delimited by a specific character, using fgetwc_unlocked() to read each character and check for the delimiter.
  • Processing Wide Character Data: Combine fgetwc_unlocked() with wide character manipulation functions to parse or transform wide character strings.

Related Commands

  • fgetwc(): Thread-safe version of fgetwc_unlocked().
  • fgetc(): Reads a single byte from a file stream.
  • fgets(): Reads a line of characters from a file stream.