#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 |
---|
댓글