ÆÄÀÏÁöÁ¤ÀÚ¸¦ º¹»çÇÑ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

<a href="/modules/moniwiki/wiki.php/manSearch?google=none&name=dup">dup</a>(2)

1장. dup(2)

차례
1.1절. »ç¿ë¹ý
1.2절. ¼³¸í
1.3절. ¹Ýȯ°ª
1.4절. ¿¡·¯
1.5절. ¿¹Á¦
1.6절. Âü°í¹®Çå

ÆÄÀÏ ÁöÁ¤ÀÚ¸¦ º¹»çÇÑ´Ù.


1.1절. »ç¿ë¹ý

#include <unistd.h>

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


1.2절. ¼³¸í

dup()¿Í dup2()´Â ÆÄÀÏ ÁöÁ¤ÀÚ oldfd¿¡ ´ëÇÑ º¹»çº»À» »ý¼ºÇÑ´Ù. ¼º°øÀûÀ¸·Î ¼öÇàµÉ°æ¿ì oldfd ÁöÁ¤ÀÚ¿¡ ´ëÇÑ º¹»çº»Àº ¼­·Î °øÀ¯µÇ¾î¼­ »ç¿ëµÈ´Ù. Áï lock, ÆÄÀÏÀ§Ä¡ Æ÷ÀÎÅÍ, Ç÷¡±×µîÀ» °øÀ¯ÇÑ´Ù. ¸¸¾à ¿øº» ÆÄÀÏÁöÁ¤ÀÚ ¿¡¼­ À§Ä¡º¯°æÀÌ ÀÏ¾î ³µ´Ù¸é, ´Ù¸¥ º¹»çµÈ ÆÄÀÏÁöÁ¤ÀÚ¿¡µµ ¿µÇâÀ» ¹ÌÄ£´Ù.

±×·¯³ª ÀÌ µÎ°³ÀÇ ÆÄÀÏÁöÁ¤ÀÚ°£ close-on-exe Ç÷¡±×´Â °øÀ¯µÇÁö ¾Ê´Â´Ù.

dup()¸¦ ÀÌ¿ëÇØ¼­ º¹»çµÇ¾îÁö´Â »õ·Î¿î ÆÄÀÏ ÁöÁ¤ÀÚ´Â »ç¿ëµÇÁö ¾Ê´Â °¡Àå ÀÛÀº ÆÄÀÏ ÁöÁ¤ÀÚ¸¦ ÀÌ¿ëÇÑ´Ù. dup2()´Â µð½ºÅ©¸³ÅÍ´Â ÆÄÀÏ ÁöÁ¤ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö Àִµ¥, ÀÌÀü¿¡ ¿­¸° newfd°¡ ÀÖ´Ù¸é ´Ý°í ³ª¼­, oldfd¸¦ newfd¿¡ º¹»çÇÏ¸é µÈ´Ù.


1.3절. ¹Ýȯ°ª

º¹»çµÈ »õ·Î¿î ÆÄÀÏÁöÁ¤ÀÚ¸¦ ¸®ÅÏÇÑ´Ù. ¿¡·¯°¡ ¹ß»ýÇϸé -1 À» ¸®ÅÏÇÑ´Ù.


1.4절. ¿¡·¯

EBADF

oldfd °¡ ¿­¸° ÆÄÀÏ ÁöÁ¤ÀÚ°¡ ¾Æ´Ò°æ¿ì

EMFILE

ÇÁ·Î¼¼½º°¡ ÃÖ´ë·Î ¿­¼ö ÀÖ´Â ÆÄÀÏ ÁöÁ¤ÀÚ °¹¼ö¸¦ °¡Áø »óÅ¿¡¼­ »õ·Î¿î ÆÄÀÏÁöÁ¤ÀÚ¸¦ ¾ò°íÀÚ ½ÃµµÇÏ´Â °æ¿ì


1.5절. ¿¹Á¦

#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main()
{
    int fd, fd2;
    char buf[80];

    fd = open("dup.c", O_RDONLY);
    fd2 = dup(fd);
    printf("%d = %d\n", fd, fd2);

    memset(buf, 0x00, 80);
    read(fd, buf, 20);
    printf("fd : %d\n%s\n", fd, buf);

    memset(buf, 0x00, 80);
    read(fd2, buf, 20);
    printf("fd : %d\n%s\n", fd2, buf);

    close(fd);
}
		

EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.