putws 或 fputws 子例程
用途
将宽字符字符串写入流。
库
标准 I/O 库 (libc.a)
语法
描述
putws 子例程将 String 参数指向的 const wchar_t 字符串作为多字节字符串写入标准输出流 (stdout) ,并将换行符附加到输出。 在所有其他方面, putws 子例程的功能类似于 put 子例程。
fputws 子例程将 String 参数指向的 const wchar_t 字符串作为多字节字符串写入输出流。 在所有其他方面, fputws 子例程的功能类似于 fput 子例程。
在 putws 或 fputws 子例程成功运行之后,在下一次成功完成对同一流上的 fflush 或 fclose 子例程的调用或对 exit 或 abort 子例程的调用之前,st_ctime和st_mtime将该文件的字段标记为待更新。
参数
| 项 | 描述 |
|---|---|
| String | 指向要写入输出的字符串。 |
| 流 | 指向打开文件的 FILE 结构。 |
返回值
成功完成后, putws 和 fputws 子例程将返回非负数。 否则,将返回 -1 的值,并设置 errno 全局变量来指示错误。
错误代码
如果未缓冲流或需要写入缓冲区中的数据,并且发生下列其中一个错误,那么 putws 或 fputws 子例程不成功:
| 项 | 描述 |
|---|---|
| 再次 | 为 Stream 参数底层的文件描述符设置了 O_NONBLOCK 标志,这将在写操作期间延迟进程。 |
| EBADF | Stream 参数下的文件描述符无效,在写操作期间无法更新。 |
| EFBIG | 进程尝试写入已等于或超过进程的文件大小限制的文件。 |
| EINTR | 进程已接收到终止读操作的信号。 |
| EIO | 该进程位于后台进程组中,试图对其控制终端执行写操作。 设置了 TOSTOP 标志,进程不会忽略或阻止 SIGTTOU 标志,并且进程的进程组是孤立的。 |
| ENOSPC | 包含该文件的设备上没有保留可用空间。 |
| EPIPE | 该进程已尝试写入未打开以进行读取的管道或先进先出 (FIFO)。 该进程还接收 SIGPIPE 信号。 |
| EILSEQ | wc 宽字符代码与有效字符不对应。 |