Name

fgetws - reads a wide character string from a FILE stream

Library

libc.lib

Synopsis

  #include <stdio.h>
  #include <wchar.h>
  wchar_t * fgetws (wchar_t * restrict ws, int n, FILE * restrict fp);

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 and ferror to determine which occurred.

Detailed description

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.

Examples

#include <stdio.h>
#include <wchar.h>
/* Illustrates how to use fgetws API */
wchar_t *example_fgetws(wchar_t *buf)
{
 FILE *fp = NULL;
 wint_t retval;
 int n;
 /* for example, 10 characters to be read */
 n = 10;
 /* opening the input file */
 fp = fopen("input.txt","r");
 if(fp == NULL)
 {
  wprintf(L"Error: File open\n");
  return (-1);
 }
 /* Read characters from the opened file */
 retval = fgetws(buf, n, fp);
 /* Close the file open for reading */
 fclose(fp);
 /* return the character read from the file */
 return (buf);
}

         


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, fstat, read, or malloc.


See also

feof, ferror, fgets
The fgetws function conforms to -p1003.1-2001.

Feedback

For additional information or queries on this page send feedback

© 2005-2007 Nokia

Top