getws 或 fgetws 子例程

用途

从流中获取字符串。

标准 I/O 库 (libc.a)

语法

#include <stdio.h>
wchar_t *fgetws ( WString Number Stream)
wchar_t *WString;
int Number;
FILE *Stream;
wchar_t *getws (WString)
wchar_t *WString;

描述

fgetws 子例程从输入流中读取字符,将它们转换为相应的宽字符代码,并将它们放在由 WString 参数指向的数组中。 子例程继续,直到读取由 Number 参数指定的字符数减去 1 或子例程迂到换行符或文件结束符为止。 fgetws 子例程用空宽字符终止由 WString 参数指定的宽字符串。

getws 子例程从标准输入流 (stdin) 指向的输入流读取宽字符到 WString 参数指向的数组中。 子例程继续直到它迂到换行符或文件结束符,然后它废弃任何换行符,并在最后一个字符读入数组后放置空宽字符。

参数

描述
wstring 指向字符串以接收字符。
指向打开文件的 FILE 结构。
编号 指定要读取的最大字符数。

返回值

如果 getwsfgetws 子例程到达文件末尾而不读取任何字符,那么它不会将任何字符传输到 String 参数并返回空指针。 如果发生读错误,那么 getwsfgetws 子例程将返回空指针并设置 errno 全局变量以指示错误。

错误代码

如果 getws fgetws 子例程由于流未缓冲或需要将数据读入流的缓冲区而失败,那么它将返回以下一个或多个错误代码:

描述
再次 指示为 Stream 参数下的文件描述符设置了 O_NONBLOCK 标志,并且进程在 fgetws 子例程中延迟。
EBADF 指示指定 Stream 参数的文件描述符不是读访问文件。
EINTR 指示由于接收到信号而终止读操作,并且未传输任何数据或实现未报告此文件的部分传输。
EIO 指示存储空间不足。
ENOMEM 指示存储空间不足。
EILSEQ 指示从输入流读取的数据未构成有效字符。