fgetws - Linux


Overview

fgetws is a library function in the C standard library used to read a line of text from a stream. It is typically employed for reading input from a file or a terminal device.

Syntax

#include <stdio.h>

wchar_t *fgetws(wchar_t *str, int num, FILE *stream);

where:

  • str: Pointer to a buffer where the input line will be stored
  • num: Maximum number of characters (excluding the null terminator) to read
  • stream: Pointer to the file or terminal device to read from

Options/Flags

None.

Examples

Example 1: Reading a line from a file

#include <stdio.h>

int main() {
    FILE *fp = fopen("myfile.txt", "r");
    wchar_t line[1024];

    while (fgetws(line, sizeof(line), fp)) {
        // Do something with the line
    }

    fclose(fp);
    return 0;
}

Example 2: Reading input from the terminal

#include <stdio.h>

int main() {
    wchar_t line[1024];

    while (fgetws(line, sizeof(line), stdin)) {
        // Do something with the line
    }

    return 0;
}

Common Issues

  • Buffer Overflow: Ensure that the buffer provided is large enough to hold the entire line of text.
  • End-of-File: When attempting to read from an empty file or terminal, fgetws will return NULL.

Integration

fgetws can be used in combination with other functions such as fgets for reading text lines in different encodings or with getline for reading variable-length lines.

Related Commands

  • fgets: Reads a line of text in UTF-8 encoding
  • getline: A more versatile function for reading variable-length lines
  • scanf: A formatted input function that can be used to read specific types of data from a stream