getws 或 fgetws 子例程
用途
从流中获取字符串。
库
标准 I/O 库 (libc.a)
语法
描述
fgetws 子例程从输入流中读取字符,将它们转换为相应的宽字符代码,并将它们放在由 WString 参数指向的数组中。 子例程继续,直到读取由 Number 参数指定的字符数减去 1 或子例程迂到换行符或文件结束符为止。 fgetws 子例程用空宽字符终止由 WString 参数指定的宽字符串。
getws 子例程从标准输入流 (stdin) 指向的输入流读取宽字符到 WString 参数指向的数组中。 子例程继续直到它迂到换行符或文件结束符,然后它废弃任何换行符,并在最后一个字符读入数组后放置空宽字符。
参数
| 项 | 描述 |
|---|---|
| wstring | 指向字符串以接收字符。 |
| 流 | 指向打开文件的 FILE 结构。 |
| 编号 | 指定要读取的最大字符数。 |
返回值
如果 getws 或 fgetws 子例程到达文件末尾而不读取任何字符,那么它不会将任何字符传输到 String 参数并返回空指针。 如果发生读错误,那么 getws 或 fgetws 子例程将返回空指针并设置 errno 全局变量以指示错误。
错误代码
如果 getws 或 fgetws 子例程由于流未缓冲或需要将数据读入流的缓冲区而失败,那么它将返回以下一个或多个错误代码:
| 项 | 描述 |
|---|---|
| 再次 | 指示为 Stream 参数下的文件描述符设置了 O_NONBLOCK 标志,并且进程在 fgetws 子例程中延迟。 |
| EBADF | 指示指定 Stream 参数的文件描述符不是读访问文件。 |
| EINTR | 指示由于接收到信号而终止读操作,并且未传输任何数据或实现未报告此文件的部分传输。 |
| EIO | 指示存储空间不足。 |
| ENOMEM | 指示存储空间不足。 |
| EILSEQ | 指示从输入流读取的数据未构成有效字符。 |