DUP(2) DUP(2)
НАЗВАНИЕ
dup - дублирование дескриптора открытого файла
СИНТАКСИС
int dup (fildes)
int fildes;
ОПИСАНИЕ
Аргумент fildes - это дескриптор файла, полученный пос-
ле выполнения системных вызовов creat, open, dup, fcntl
и pipe. Системный вызов dup возвращает новый дескриптор
файла, имеющий следующие общие свойства с исходным
дескриптором:
1. Тот же открытый файл (или канал).
2. Тот же указатель текущей позиции в файле (то есть
оба дескриптора разделяют один и тот же указа-
тель).
3. Тот же режим доступа (чтение, запись или чтение/-
запись).
Новый дескриптор создается таким, чтобы после выполне-
ния системных вызовов 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 присваивается код
ошибки.
|