The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group

 NAME

tcdrain - wait for transmission of output

 SYNOPSIS



#include <termios.h>

int tcdrain(int fildes);

 DESCRIPTION

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.

 RETURN VALUE

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

 ERRORS

The tcdrain() function will fail if:
[EBADF]
The fildes argument is not a valid file descriptor.
[EINTR]
A signal interrupted tcdrain().
[ENOTTY]
The file associated with fildes is not a terminal.

The tcdrain() function may fail if:

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

 EXAMPLES

None.

 APPLICATION USAGE

None.

 FUTURE DIRECTIONS

In the ISO POSIX-1 standard, the possibility of an [EIO] error occurring is described in XBD specification, Terminal Access Control , but it is not mentioned in the tcdrain() interface definition. It has become clear that this omission was unintended, so it is likely that the [EIO] error will be reclassified as a "will fail" in a future issue of the POSIX standard.

 SEE ALSO

tcflush(), <termios.h>, <unistd.h>, the XBD specification, General Terminal Interface .

DERIVATION

Derived from the POSIX.1-1988 standard.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]