fgetws(3)

fgetws3

Get a line of wide characters from a stream

Usage

#include <stdio.h>

#include <wchar.h>

wchar_t *

fgetws(wchar_t * restrict ws, int n, FILE * restrict fp);

Library

Standard C Library (libc, -lc)

Overview

The fgetws() function reads at most one less than the number of characters specified by n from the given fp and stores them in the wide character string ws. Reading stops when a newline character is found, at end-of-file or error. The newline, if any, is retained. If any characters are read and there is no error, a ‘\0’ character is appended to end the string.

Return values

Upon successful completion, fgetws() returns ws. If end-of-file occurs before any characters are read, fgetws() returns NULL and the buffer contents remain unchanged. If an error occurs, fgetws() returns NULL and the buffer contents are indeterminate. The fgetws() function does not distinguish between end-of-file and error, and callers must use feof(3) and ferror(3) to determine which occurred.

Errors

The fgetws() function will fail if:

[EBADF]

The given fp argument is not a readable stream.

[EILSEQ]

The data obtained from the input stream does not form a valid multibyte character.

The function fgetws() may also fail and set errno for any of the errors specified for the routines fflush(3), fstat(2), read(2), or malloc(3).

Releases

56 releases since FreeBSD 5.0-RELEASE; the text changed 34 times.

  1. 5.0
  2. 5.1–6.3
  3. 6.4
  4. 7.0
  5. 7.1
  6. 7.2
  7. 7.3
  8. 7.4
  9. 8.0
  10. 8.1
  11. 8.2
  12. 8.3
  13. 8.4
  14. 9.0
  15. 9.1
  16. 9.2
  17. 9.3
  18. 10.0
  19. 10.1
  20. 10.2
  21. 10.3
  22. 10.4
  23. 11.0
  24. 11.1
  25. 11.2
  26. 11.3
  27. 11.4
  28. 12.0
  29. 12.1
  30. 12.2
  31. 12.3
  32. 12.4
  33. 13.0–13.2
  34. 13.3–14.5
  35. 15.0–16.0

Standards

The fgetws() function conforms to IEEE Std 1003.1-2001 (“POSIX.1”).

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.