TCDRAIN(3) Library Functions Manual TCDRAIN(3)

tcdrainwait for transmission of output

#include <termios.h>

int tcdrain(int fildes);

The tcdrain () function shall block 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, shall cause the process group to be sent a SIGTTOU signal. If the calling process is blocking or ignoring SIGTTOU signals, the process shall be allowed to perform the operation, and no signal is sent.

Upon successful completion, 0 shall be returned. Otherwise, -1 shall be returned and set to indicate the error.

The tcdrain () function shall 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.

None.

None.

None.

None.

tcflush(3)

XBD V1_chap11(7) , <termios.h>

First released in Issue 3. Included for alignment with the POSIX.1-1988 standard.

The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:

  • In the DESCRIPTION, the final paragraph is no longer conditional on _POSIX_JOB_CONTROL. This is a FIPS requirement.
  • The [EIO] error is added.

January 1, 2008 posix.fail