dup

Autres langues

Langue: ru

Autres versions - même langue

Version: 1994-08-21 (openSuse - 09/10/07)

Section: 2 (Appels système)

éíñ

dup, dup2 - ÓÏÚÄÁÔØ ÄÕÂÌÉËÁÔ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ

ïâúïò


#include <unistd.h>



int dup(int oldfd);

int dup2(int oldfd, int newfd);

ïðéóáîéå

dup É dup2 ÓÏÚÄÁÀÔ ËÏÐÉÀ ÆÁÊÌÏ×ÏÇÏ ÄÅÓËÒÉÐÔÏÒÁ oldfd.

óÔÁÒÙÊ É ÎÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒÙ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÄÒÕÇ ×ÍÅÓÔÏ ÄÒÕÇÁ. ïÎÉ ÉÍÅÀÔ ÏÂÝÉÅ ÂÌÏËÉÒÏ×ËÉ, ÕËÁÚÁÔÅÌØ ÐÏÚÉÃÉÉ × ÆÁÊÌÅ É ÆÌÁÇÉ; ÎÁÐÒÉÍÅÒ, ÅÓÌÉ ÐÏÚÉÃÉÑ × ÆÁÊÌÅ ÂÙÌÁ ÉÚÍÅÎÅÎÁ Ó ÐÏÍÏÝØÀ lseek, ÎÁ ÏÄÎÏÍ ÉÚ ÄÅÓËÒÉÐÔÏÒÏ×, ÔÏ ÜÔÁ ÐÏÚÉÃÉÑ ÔÁËÖÅ ÍÅÎÑÅÔÓÑ É ÎÁ ×ÔÏÒÏÍ.

ä×Á ÄÅÓËÒÉÐÔÏÒÁ, ÏÄÎÁËÏ, ËÁÖÄÙÊ ÉÍÅÀÔ Ó×ÏÊ ÓÏÂÓÔ×ÅÎÎÙÊ ÆÌÁÇ ÚÁËÒÙÔØ-ÐÒÉ-exec.

dup ÉÓÐÏÌØÚÕÅÔ ÓÁÍÙÊ ÍÁÌÅÎØËÉÊ Ó×ÏÂÏÄÎÙÊ ÎÏÍÅÒ ÄÅÓËÒÉÐÔÏÒÁ.

dup2 ÄÅÌÁÅÔ newfd ËÏÐÉÅÊ oldfd, ÚÁËÒÙ×ÁÑ newfd, ÅÓÌÉ ÔÒÅÂÕÅÔÓÑ.

÷ïú÷òáýáåíïå úîáþåîéå

dup É dup2 ×ÏÚ×ÒÁÝÁÀÔ ÎÏ×ÙÊ ÄÅÓËÒÉÐÔÏÒ ÉÌÉ -1, ÅÓÌÉ ÐÒÏÉÚÏÛÌÁ ÏÛÉÂËÁ (× ÜÔÏÍ ÓÌÕÞÁÅ errno ÕÓÔÁÎÁ×ÌÉ×ÁÅÔÓÑ ÄÏÌÖÎÙÍ ÏÂÒÁÚÏÍ).

ïûéâëé

EBADF
oldfd ÎÅ Ñ×ÌÑÅÔÓÑ ÏÔËÒÙÔÙÍ ÆÁÊÌÏ×ÙÍ ÄÅÓËÒÉÐÔÏÒÏÍ, ÉÌÉ ÖÅ newfd ÎÁÈÏÄÉÔÓÑ ×ÎÅ ÄÏÐÕÓÔÉÍÏÇÏ ÄÉÁÐÁÚÏÎÁ ÆÁÊÌÏ×ÙÈ ÄÅÓËÒÉÐÔÏÒÏ×.
EMFILE
ðÒÏÃÅÓÓ ÕÖÅ ÏÔËÒÙÌ ÍÁËÓÉÍÁÌØÎÏÅ ËÏÌÉÞÅÓÔ×Ï ÆÁÊÌÏ× É ÐÙÔÁÅÔÓÑ ÏÔËÒÙÔØ ÅÝÅ ÏÄÉÎ.
EINTR
÷ÙÚÏ× dup2 ÂÙÌ ÐÒÅÒ×ÁÎ ËÁËÉÍ-ÌÉÂÏ ÓÉÇÎÁÌÏÍ.
EBUSY
(ôÏÌØËÏ × Linux) íÏÖÅÔ ÓÌÕÞÉÔØÓÑ × dup2 ×Ï ×ÒÅÍÑ ÐÒÉ ÕÓÌÏ×ÉÉ ÓÏÓÔÑÚÁÔÅÌØÎÙÈ ×ÙÚÏ×Ï× open() É dup().

÷îéíáîéå

ïÛÉÂËÁ, ËÏÔÏÒÕÀ ×ÏÚ×ÒÁÝÁÅÔ dup2, ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÔÏÊ, ÞÔÏ ×ÏÚ×ÒÁÝÁÅÔ fcntl(..., F_DUPFD, ...), ËÏÇÄÁ newfd ÎÁÈÏÄÉÔÓÑ ×ÎÅ ÄÏÐÕÓÔÉÍÙÈ ÐÒÅÄÅÌÏ×. îÁ ÎÅËÏÔÏÒÙÈ ÓÉÓÔÅÍÁÈ dup2 ÔÁËÖÅ ÉÎÏÇÄÁ ×ÏÚ×ÒÁÝÁÅÔ EINVAL, ËÁË F_DUPFD.

ïûéâëé

åÓÌÉ newfd ÂÙÌ ÏÔËÒÙÔ, ÌÀÂÙÅ ÏÛÉÂËÉ, ËÏÔÏÒÙÅ ÍÏÇÌÉ ÂÙ ÓÌÕÞÉÔØÓÑ ×Ï ×ÒÅÍÑ close(), ÔÅÒÑÀÔÓÑ. ïÓÔÏÒÏÖÎÙÊ ÐÒÏÇÒÁÍÍÉÓÔ ÎÅ ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ dup2 ÎÅ ÚÁËÒÙ× ÓÐÅÒ×Á newfd .

óïïô÷åôóô÷éå óôáîäáòôáí

SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4 ÄÏËÕÍÅÎÔÉÒÕÅÔ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ËÏÄÙ ÏÛÉÂËÉ EINTR É ENOLINK. POSIX.1 ÄÏÂÁ×ÌÑÅÔ EINTR. ïÛÉÂËÁ EBUSY Ñ×ÌÑÅÔÓÑ ÓÐÅÃÉÆÉÞÎÏÊ ÄÌÑ Linux.

óíïôòé ôáëöå

fcntl(2), open(2), close(2).

ðåòå÷ïä

Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 1999, ÷ÉËÔÏÒ ÷ÉÓÌÏÂÏËÏ× <corochoone@perm.ru> 2003