TCDRAIN(3C) Standard C Library Functions TCDRAIN(3C)

tcdrain - wait for transmission of output

#include <termios.h>
int tcdrain(int fildes);

The tcdrain() function waits until all output written to the object referred to by fildes is transmitted. The fildes argument is an open file descriptor associated with a terminal.

Any attempts to use tcdrain() from a process which is a member of a background process group on a fildes associated with its controlling terminal, will cause the process group to be sent a SIGTTOU signal. If the calling process is blocking or ignoring SIGTTOU signals, the process is allowed to perform the operation, and no signal is sent.

Upon successful completion, 0 is returned. Otherwise, −1 is returned and errno is set to indicate the error.

The tcdrain() function will fail if:


The fildes argument is not a valid file descriptor.


A signal interrupted tcdrain().


The file associated with fildes is not a terminal.

The tcdrain() function may fail if:


The process group of the writing process is orphaned, and the writing process is not ignoring or blocking SIGTTOU.

See attributes(7) for descriptions of the following attributes:

Interface Stability Standard
MT-Level MT-Safe, and Async-Signal-Safe

tcflush(3C), termio(4I), attributes(7), standards(7)

August 14, 2002 OmniOS