dup

DUP(2)                     리ëì¤ íë¡ê·¸ë머 매ë´ì¼                    DUP(2)



ì´ë¦
       dup, dup2 - íì¼ ëì¤í¬ë¦½í°ë¥¼ ë³µì¬íë¤.

ì¬ì©ë²
       #include <unistd.h>

       int dup(int oldfd);
       int dup2(int oldfd, int newfd);

ì¤ëª
       dup ê·¸ë¦¬ê³  dup2ë íì¼ ëì¤í¬ë¦½í° oldfdì ëí ë³µì¬ë³¸ì ìì±íë¤.

       dup ëë dup2ê° ì±ê³µì ì¼ë¡ ìíëë©´, oldfd ëì¤í¬ë¦½í°ì ë³µì¬ë ìë¡ì´
       ëì¤í¬ë¦½í°ë ìë¡ ê³µì ëì´ ì¬ì©ë  ê²ì´ë¤.  ì´ ëì¤í¬ë¦½í°ë¤ì ë½(lock), íì¼
       ìì¹ í¬ì¸í° ê·¸ë¦¬ê³  íë그를 ê³µì íë¤; ì를 ë¤ì´, ë§ì½ íì¼ ìì¹ê° í
       ëì¤í¬ë¦½í°ìì lseek를 ì¬ì©í´ ë³ê²½ëë©´ ì´ ë³ê²½ë ìì¹ë ë¤ë¥¸
       ëì¤í¬ë¦½í°ìë ìí¥ì 미ì¹ë¤.

       ê·¸ë¬ë ì´ ë ëì¤í¬ë¦½í°ë close-on-exec íëê·¸ë ê³µì íì§ ìëë¤.

       dupë ë³µì¬ëì´ì§ ìë¡ì´ ëì¤í¬ë¦½í°ë¡, ì¬ì©ëì§ ìë ê°ì¥ ìì ëì¤í¬ë¦½í°
       ë²í¸ë¥¼ ì´ì©íë¤.

       dup2ë íìíë¤ë©´ ë¨¼ì  newfd를 ë«ê³ , oldfd를 newfd ì ë³µì¬íë¤.

ë°íê°
       dup ê·¸ë¦¬ê³  dup2 ë ë³µì¬ë ìë¡ì´ ëì¤í¬ë¦½í°ë¥¼ 리í´íë¤. ëë ìë¬ (errno
       ê°ì ì ì íê² ì¤ì íë¤) ê° ë°ìí ê²½ì°ìë -1ì 리í´íë¤.

ìë¬
       EBADF  oldfdì´ ì´ë¦° íì¼ ëì¤í¬ë¦½í°ê° ìëê±°ë, newfdê° íì¼ ëì¤í¬ë¦½í°ì
              íì©ë ë²ì를 ëì´ì  ê²½ì°ì´ë¤.

       EMFILE íë¡ì¸ì¤ê° ì´ë¯¸ ìµëë¡ ì´ ììë íì¼ ëì¤í¬ë¦½í°ì ê°¯ì를 ê°ì§ ìíìì
              ìë¡ì´ íì¼ ëì¤í¬ë¦½í°ë¥¼ ì´ê³ ì ìëí ê²½ì°ì´ë¤.

ê²½ê³
       newfdê° íì© ê°ë¥í ë²ì ë°ì ê°ì¼ ë, dup2ì ìí´ ë¦¬í´ë ìë¬ê°ì fcntl(...,
       F_DUPFD, ...)ì ìí´ ë¦¬í´ë ìë¬ê°ê³¼ë ë¤ë¥´ë¤. ì´ë¤ ìì¤íììë dup2ê°
       F_DUPFDì ê°ì EINVALì 리í´í기ë íë¤.

í¸í
       SVr4, SVID, POSIX, X/OPEN, BSD 4.3. SVr4ììë ì¶ê°ì ì¼ë¡ EINTRì ENOLINK
       ìë¬ ìí를 기ì íê³  ìë¤. POSIX.1ë EINTRì ì¶ê°íë¤.

ê´ë ¨ í목
       fcntl(2), open(2), close(2).

ìì
       ì ëí <dhjung@serome.co.kr>, 2000ë 4ì 20ì¼



리ëì¤ 1.1.46                    1994ë 8ì 21ì¼                          DUP(2)