본문 바로가기
dev, tech/System

int dup2(int fildes, int fildes2)

by 구띵 2007. 3. 17.

#include <unistd.h>

 

int dup2(int fildes, int fildes2)

 

fildes2가 열려 있다면 fildes2 항목을 닫고 fildes항목을 fildes2로 복사한다.

 

int main()

{

    ....

    fd = open("my.file", CREATE_FLAGS, CREATE_MODE);

    ....

 

    if(dup2(fd, STDOUT_FILENO) == -1) {

      ....

    }

}

 

dup2 함수는 두 번째 매개변수(표준출력)에 해당하는 디스크립터를 닫고

첫번째 매개변수(fd)를 두 번째 매개변수(STDOUT_FILENO)에 해당하는 항목에 복사한다.

 

<파일 디스크립터 테이블의 상태>

open호출 후,

[0] 표준 입력

[1] 표준 출력

[2] 표준 에러

[3] my.file에 쓰기

 

dup2 호출 후

[0] 표준 입력

[1] my.file에 쓰기

[2] 표준 에러

[3] my,file에 쓰기

 

close 호출 후

[0] 표준 입력

[1] my.file에 쓰기

[2] 표준 에러

 

 

'dev, tech > System' 카테고리의 다른 글

프로세스 간의 통신 방법 1- 파이프 이용  (0) 2007.03.17

댓글