Requirements Catalog of LSB Core 3.1
Requirements for the function 'mkfifo'
| Standard | ID | Description |
| SUSv3 | mkfifo.01 | The mkfifo() function shall create a new FIFO special file named by the pathname pointed to by path. |
| SUSv3 | mkfifo.02 | The file permission bits of the new FIFO shall be initialized from mode. The file permission bits of the mode argument shall be modified by the process' file creation mask. |
| SUSv3 | app.mkfifo.03 | When bits in mode other than the file permission bits are set, the effect is implementation-defined. |
| SUSv3 | mkfifo.04 | If path names a symbolic link, mkfifo() shall fail and set errno to [EEXIST]. |
| SUSv3 | mkfifo.05 | The FIFO's user ID shall be set to the process' effective user ID. |
| SUSv3 | mkfifo.06 | The FIFO's group ID shall be set to the group ID of the parent directory or to the effective group ID of the process. |
| SUSv3 | mkfifo.07 | Implementations shall provide a way to initialize the FIFO's group ID to the group ID of the parent directory. Implementations may, but need not, provide an implementation-defined way to initialize the FIFO's group ID to the effective group ID of the calling process. |
| SUSv3 | mkfifo.08 | Upon successful completion, mkfifo() shall mark for update the st_atime, st_ctime, and st_mtime fields of the file. |
| SUSv3 | mkfifo.09 | Also, the st_ctime and st_mtime fields of the directory that contains the new entry shall be marked for update. |
| SUSv3 | mkfifo.10 | Upon successful completion, 0 shall be returned. |
| SUSv3 | mkfifo.11 | Otherwise, -1 shall be returned, no FIFO shall be created, and errno shall be set to indicate the error. |
| SUSv3 | mkfifo.12 | The mkfifo() function shall fail if: |
| SUSv3 | mkfifo.12.01 | [EACCES] A component of the path prefix denies search permission, or write permission is denied on the parent directory of the FIFO to be created. |
| SUSv3 | mkfifo.12.02 | [EEXIST] The named file already exists. |
| SUSv3 | mkfifo.12.03 | [ELOOP] A loop exists in symbolic links encountered during resolution of the path argument. |
| SUSv3 | mkfifo.12.04 | [ENAMETOOLONG] The length of the path argument exceeds {PATH_MAX} or a pathname component is longer than {NAME_MAX}. |
| SUSv3 | mkfifo.12.05 | [ENOENT] A component of the path prefix specified by path does not name an existing directory or path is an empty string. |
| SUSv3 | mkfifo.12.06 | [ENOSPC] The directory that would contain the new file cannot be extended or the file system is out of file-allocation resources. |
| SUSv3 | mkfifo.12.07 | [ENOTDIR] A component of the path prefix is not a directory. |
| SUSv3 | mkfifo.12.08 | [EROFS] The named file resides on a read-only file system. |
| SUSv3 | mkfifo.13 | The mkfifo() function may fail if: |
| SUSv3 | mkfifo.13.01 | [ELOOP] More than {SYMLOOP_MAX} symbolic links were encountered during resolution of the path argument. |
| SUSv3 | mkfifo.13.02 | [ENAMETOOLONG] As a result of encountering a symbolic link in resolution of the path argument, the length of the substituted pathname string exceeded {PATH_MAX}. |