Rechercher une page de manuel
dup
Langue: ja
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 ¤ÎÊ£À½¤òºî¤ë¡£dup() ¤Þ¤¿¤Ï dup2() ¤¬À®¸ù¤òÊÖ¤·¤¿¾ì¹ç¤Ë¤Ï¡¢ ¸Å¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¿·¤·¤¤¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï ¸ß¤¤¤Ë²Ä´¹¤Ê¤â¤Î¤È¤·¤Æ»È¤¦¤³¤È¤¬¤Ç¤¤ë¡£ 2¤Ä¤Î¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ÏƱ¤¸¥Õ¥¡¥¤¥ëµ½Ò (description) (open(2) »²¾È) ¤ò»²¾È¤·¤Æ¤ª¤ê¡¢¤·¤¿¤¬¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤ä¥Õ¥¡¥¤¥ë¾õÂ֥ե饰¤¬ ¶¦Í¤µ¤ì¤ë¡£Î㤨¤Ð¡¢°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤ËÂФ·¤Æ lseek(2) ¤ò»È¤Ã¤Æ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤òÊѹ¹¤·¤¿¾ì¹ç¡¢¤â¤¦°ìÊý¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î ¥ª¥Õ¥»¥Ã¥È¤âÊѲ½¤¹¤ë¡£
2¤Ä¤Î¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ï¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¦¥Õ¥é¥° (close-on-exec flag) ¤ò¶¦Í¤·¤Ê¤¤¡£Ê£À½¤µ¤ì¤¿¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Î close-on-exec flag (fcntl(2) »²¾È) ¤Ï off ¤È¤Ê¤ë¡£
dup() ¤Ï»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤ºÇ¾®¤ÎÃͤΥǥ£¥¹¥¯¥ê¥×¥¿¤ò¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿ ¤È¤·¤Æ»ÈÍѤ¹¤ë¡£
dup2() ¤Ï oldfd ¤ÎÊ£À½¤È¤·¤Æ newfd ¤òºîÀ®¤¹¤ë¡£É¬Íפʤé¤ÐºÇ½é¤Ë newfd ¤ò¥¯¥í¡¼¥º (close) ¤¹¤ë¡£
ÊÖ¤êÃÍ
dup() ¤È dup2() ¤Ï¿·¤·¤¤¥Ç¥£¥¹¥¯¥ê¥×¥¿¤òÊÖ¤¹¡£¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤òÊÖ¤¹ (¤½¤Î»þ errno ¤ËŬÀÚ¤ÊÃͤ¬ÀßÄꤵ¤ì¤ë¡£)¥¨¥é¡¼
- EBADF
- oldfd ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤¤¤«¡¢ newfd ¤¬¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤È¤·¤Æµö¤µ¤ì¤ëÈϰϤ«¤é³°¤ì¤Æ¤¤¤ë¡£
- EBUSY
- (Linux ¤Î¤ß) open(2) ¤ä dup() ¤È¤Î¶¥¹ç¾õÂ֤ξì¹ç¤Ë¡¢ dup2() ¤Ï¤³¤Î¥¨¥é¡¼¤òÊÖ¤¹¤«¤â¤·¤ì¤Ê¤¤¡£
- EINTR
- dup2() ¤Î¸Æ¤Ó½Ð¤·¤¬¥·¥°¥Ê¥ë¤Ë¤è¤Ã¤Æ³ä¤ê¹þ¤Þ¤ì¤¿ (interrupt)¡£
- EMFILE
- ¥×¥í¥»¥¹¤¬¤¹¤Ç¤Ë¥ª¡¼¥×¥ó¤Ç¤¤ëºÇÂç¿ô¤Þ¤Ç¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿ ¤ò³«¤¤¤Æ¤¤¤Æ¡¢¤µ¤é¤Ë¿·¤·¤¤¤â¤Î¤ò³«¤³¤¦¤È¤·¤¿¡£
½àµò
SVr4, 4.3BSD, POSIX.1-2001.Ãí°Õ
newfd ¤¬ÈϰϤòĶ¤¨¤¿»þ¤ËÊÖ¤µ¤ì¤ë¥¨¥é¡¼¤Ï¡¢ dup2() ¤È fcntl(..., F_DUPFD, ...) ¤Ç¤Ï°Û¤Ã¤Æ¤¤¤ë¡£ dup2() ¤¬ F_DUPFD ¤ÈƱ¤¸¤è¤¦¤Ë EINVAL ¤òÊÖ¤¹¥·¥¹¥Æ¥à¤â¤¢¤ë¡£newfd ¤¬¥ª¡¼¥×¥ó¤µ¤ì¤Æ¤¤¤ë¤È¡¢ close(2) ¤·¤¿»þ¤ËÊó¹ð¤µ¤ì¤ë¤Ï¤º¤Î¥¨¥é¡¼¤¬¼º¤ï¤ì¤Æ¤·¤Þ¤¦¡£ dup2() ¤ò»È¤¦Á°¤ËÀ褺 newfd ¤ò¥¯¥í¡¼¥º¤¹¤ë¤è¤¦¤Ë¤·¤¿Êý¤¬¤¤¤¤¤À¤í¤¦¡£
´ØÏ¢¹àÌÜ
close(2), fcntl(2), open(2)Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre