[[프로그래밍_NOTE]]/Embedded system

dup() , dup2()

갑빠돌격기 2008. 9. 17. 14:37
/////////////////////////////////////////////////////////////////////
    dup()
/////////////////////////////////////////////////////////////////////
#include<stdio.h>
#include<unistd.h>

int main()
{
    int fd , newfd;
    close(STDOUT_FILENO);
    fd = creat("dup_result",0644);
    newfd = dup(fd);
    printf("hello world\n");
    printf("      fd : %d\n" , fd);
    printf("newfd : %d\n" , newfd);
   return 0;
}

/*
파일디스크립터 리턴값은
작은 값부터 할당되므로
지금 의도하는 값을 결과를 얻어내기 위해서는
STDOUT_FILENO 의 디스크립터 값을 해제해 주어야 한다.
*/

/////////////////////////////////////////////////////////////////////
   dup2()
/////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <unistd.h>
int main(void)
{
    int fd;
    fd = creat("dup2_result", 0644);
    dup2(fd, STDOUT_FILENO);
    close(fd);

    printf("hello world\n");
    return 0;
}


----------------------------
        0   stdin
        1   stdout
        2   stderr
        3   fd
        4   newfd
----------------------------