Writes a character or a word to a stream.
Standard I/O Library (libc.a)
The putwc subroutine writes the wide character specified by the Character parameter to the output stream pointed to by the Stream parameter. The wide character is written as a multibyte character at the associated file position indicator for the stream, if defined. The subroutine then advances the indicator. If the file cannot support positioning requests, or if the stream was opened with append mode, the character is appended to the output stream.
The putwchar subroutine works like the putwc subroutine, except that putwchar writes the specified wide character to the standard output.
The fputwc subroutine works the same as the putwc subroutine.
Output streams, with the exception of stderr, are buffered by default if they refer to files, or line-buffered if they refer to terminals. The standard error output stream, stderr, is unbuffered by default, but using the freopen subroutine causes it to become buffered or line-buffered. Use the setbuf subroutine to change the stream's buffering strategy.
After the fputwc, putwc, fputc. putc, fputs, puts, or putw subroutine runs successfully, and before the next successful completion of a call either to the fflush or fclose subroutine on the same stream or to the exit or abort subroutine, the st_ctime and st_mtime fields of the file are marked for update.
Item | Description |
---|---|
Character | Specifies a wide character of type wint_t. |
Stream | Specifies a stream of output data. |
Upon successful completion, the putwc, putwchar, and fputwc subroutines return the wide character that is written. Otherwise WEOF is returned, the error indicator for the stream is set, and the errno global variable is set to indicate the error.
If the putwc, putwchar, or fputwc subroutine fails because the stream is not buffered or data in the buffer needs to be written, it returns one or more of the following error codes:
Item | Description |
---|---|
EAGAIN | Indicates that the O_NONBLOCK flag is set for the file descriptor underlying the Stream parameter, delaying the process during the write operation. |
EBADF | Indicates that the file descriptor underlying the Stream parameter is not valid and cannot be updated during the write operation. |
EFBIG | Indicates that the process attempted to write to a file that already equals or exceeds the file-size limit for the process. The file is a regular file and an attempt was made to write at or beyond the offset maximum associated with the corresponding stream. |
EILSEQ | Indicates that the wide-character code does not correspond to a valid character. |
EINTR | Indicates that the process has received a signal that terminates the read operation. |
EIO | Indicates that the process is in a background process group attempting to perform a write operation to its controlling terminal. The TOSTOP flag is set, the process is not ignoring or blocking the SIGTTOU flag, and the process group of the process is orphaned. |
ENOMEM | Insufficient storage space is available. |
ENOSPC | Indicates that no free space remains on the device containing the file. |
ENXIO | Indicates a request was made of a non-existent device, or the request was outside the capabilities of the device. |
EPIPE | Indicates that the process has attempted to write to a pipe or first-in-first-out (FIFO) that is not open for reading. The process will also receive a SIGPIPE signal. |