The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> tcdrain - wait for transmission of output

#### SYNOPSIS

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

#### DESCRIPTION

> 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.

#### RETURN VALUE

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

#### ERRORS

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

The following sections are informative.

#### EXAMPLES

> None.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> tcflush(), the Base Definitions volume of IEEE Std 1003.1-2001, Chapter 11, General Terminal Interface, <termios.h>, <unistd.h>

#### CHANGE HISTORY

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

#### Issue 6

> 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.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]