NAME
V1_chap10 —
Directory Structure and Devices
10. Directory Structure and Devices
10.1 Directory Structure and Files
The following directories shall exist on conforming systems and conforming applications shall make use of them only as described. Strictly conforming applications shall not assume the ability to create files in any of these directories, unless specified below.
The following directory shall exist on conforming systems and shall be used as described:
- /tmp
- A directory made available for applications that need a place to create temporary files. Applications shall be allowed to create files in this directory, but shall not assume that such files are preserved between invocations of the application.
The following files shall exist on conforming systems and shall be both readable and writable:
- /dev/null
- An infinite data source and data sink. Data written to /dev/null shall be discarded. Reads from /dev/null shall always return end-of-file (EOF).
- /dev/tty
- In each process, a synonym for the controlling terminal associated with the process group of that process, if any. It is useful for programs or shell procedures that wish to be sure of writing messages to or reading data from the terminal no matter how output has been redirected. It can also be used for applications that demand the name of a file for output, when typed output is desired and it is tiresome to find out what terminal is currently in use.
The following file shall exist on conforming systems and need not be readable or writable:
- /dev/console
- The /dev/console file is a generic name given to the system console (see System Console ). It is usually linked to an implementation-defined special file. It shall provide an interface to the system console conforming to the requirements of General Terminal Interface .
10.2 Output Devices and Terminal Types
The utilities in the Shell and Utilities volume of POSIX.1-2008 historically have been implemented on a wide range of terminal types, but a conforming implementation need not support all features of all utilities on every conceivable terminal. POSIX.1-2008 states which features are optional for certain classes of terminals in the individual utility description sections. The implementation shall document in the system documentation which terminal types it supports and which of these features and utilities are not supported by each terminal.
When a feature or utility is not supported on a specific terminal type, as allowed by POSIX.1-2008, and the implementation considers such a condition to be an error preventing use of the feature or utility, the implementation shall indicate such conditions through diagnostic messages or exit status values or both (as appropriate to the specific utility description) that inform the user that the terminal type lacks the appropriate capability.
POSIX.1-2008 uses a notational convention based on historical practice that identifies some of the control characters defined in V1_chap07(7) in a manner easily remembered by users on many terminals. The correspondence between this " <control>- char " notation and the actual control characters is shown in the following table. When POSIX.1-2008 refers to a character by its <control>- name, it is referring to the actual control character shown in the Value column of the table, which is not necessarily the exact control key sequence on all terminals. Some terminals have keyboards that do not allow the direct transmission of all the non-alphanumeric characters shown. In such cases, the system documentation shall describe which data sequences transmitted by the terminal are interpreted by the system as representing the special characters.
| Name | Value | Symbolic Name | Name | Value | Symbolic Name |
| <control>-A | <SOH> | <SOH> | <control>-Q | <DC1> | <DC1> |
| <control>-B | <STX> | <STX> | <control>-R | <DC2> | <DC2> |
| <control>-C | <ETX> | <ETX> | <control>-S | <DC3> | <DC3> |
| <control>-D | <EOT> | <EOT> | <control>-T | <DC4> | <DC4> |
| <control>-E | <ENQ> | <ENQ> | <control>-U | <NAK> | <NAK> |
| <control>-F | <ACK> | <ACK> | <control>-V | <SYN> | <SYN> |
| <control>-G | <BEL> | <alert> | <control>-W | <ETB> | <ETB> |
| <control>-H | <BS> | <backspace> | <control>-X | <CAN> | <CAN> |
| <control>-I | <HT> | <tab> | <control>-Y | <EM> | <EM> |
| <control>-J | <LF> | <linefeed> | <control>-Z | <SUB> | <SUB> |
| <control>-K | <VT> | <vertical-tab> | <control>-[ | <ESC> | <ESC> |
| <control>-L | <FF> | <form-feed> | <control>-\ | <FS> | <FS> |
| <control>-M | <CR> | <carriage-return> | <control>-] | <GS> | <GS> |
| <control>-N | <SO> | <SO> | <control>-^ | <RS> | <RS> |
| <control>-O | <SI> | <SI> | <control>-_ | <US> | <US> |
| <control>-P | <DLE> | <DLE> | <control>-? | <DEL> | <DEL> |
- Note:
- The notation uses uppercase letters for arbitrary editorial reasons. There is no implication that the keystrokes represent control-shift-letter sequences.