DUP(2)
НАЗВАНИЕ
dup - дублирование дескриптора открытого файла
СИНТАКСИС
int dup (fildes)
int fildes;
ОПИСАНИЕ
Аргумент fildes - это дескриптор файла, полученный после выполнения системных вызовов creat, open, dup, fcntl
и pipe. Системный вызов dup возвращает новый дескриптор
файла, имеющий следующие общие свойства с исходным
дескриптором:
- Тот же открытый файл (или канал).
- Тот же указатель текущей позиции в файле (то есть
оба дескриптора разделяют один и тот же указатель).
- Тот же режим доступа (чтение, запись или чтение/запись).
Новый дескриптор создается таким, чтобы после выполнения системных вызовов exec(2) файл оставался открытым
[см. fcntl(2)].
Возвращается наименьший из доступных дескрипторов.
Системный вызов dup завершается неудачей, если выполнено хотя бы одно из следующих условий:
- [EBADF]
- Аргумент fildes не является корректным
дескриптором открытого файла.
- [EINTR]
- Во время выполнения системного вызова перехвачен сигнал.
- [EMFILE]
- Превышается максимально допустимое количество файлов, открытых одновременно в одном процессе.
- [ENOLINK]
- Аргумент fildes указывает на удаленный
компьютер, связи с которым в данный момент
нет.
СМ. ТАКЖЕ
close(2), creat(2), exec(2), fcntl(2), open(2),
pipe(2), lockf(3C).
ДИАГНОСТИКА
При успешном завершении результат равен неотрицательному целому числу - дескриптору файла; в случае ошибки
возвращается -1, а переменной errno присваивается код
ошибки.