[완료] dup() 함수 사용 기법을 모르겠습니다.

654
points
points
int rc;
rc = fork( );
setpgrp(); //그룹 아이디 설정 <- 그룹 아이디를 설정 함으로 어떤 변화가 생기나요?
close( 0 ); //stdin
close( 1 ); //stdout
close( 2 ); //stderror
int fd = open( "/dev/null", O_RDWR ); // /dev/null을 읽고 쓴다. <- 쓰는 이유는 쓰레기값을 버리기 위해서 쓴다?
dup( fd ); //파일 기술자를 복사한다. <- 왜 두번 복사 해야 될까요?
dup( fd ); //파일 기술자를 복사한다.
return;
현재 소스를 분석 하고 있는데.. 정확히 어떤 목적으로 어떤 역활을 하려고 했는지.. 알수가 없네요. ㅠ_ㅠ.. 주석은 제가 찾아 다니면서..
달아 놓은겁니다. 생각 하자면.. 데몬을 목적으로 한것 같기도 한데.. ㅜ.ㅜ 알려주세요~~ ㅠ_ㅠ

points
Advanced Programming in the
Advanced Programming in the UNIX Environment 책을 읽어보시길 권합니다. 원서를 보시는 것이 좋습니다.
points
허접한 실력이지만...
허접한 실력이지만... 대충 보면,
close(0),(1),(2)로 stdin, stdout, stderr을 닫아주고,
/dev/null을 open하면 stdin자리(0)에 열리겠죠?
그 다음에 dup을 함으로서 stdout, stderr(1, 2)자리에 열릴거구요.
그러면 stdin, stdout, stderr로 가는 모든 입출력이 /dev/null로 가겠죠?
그러면 /dev/null은 읽으면 0만 나오고 쓰면 사라지는 곳이므로,
모든 입출력은 잡아먹힙니다!
뭐 그런거 아닌가 싶네요.
[cppig1995@localhost cppig1995]$ make
make: *** No targets specified and no makefile found. 멈춤.
[cppig1995@localhost cppig1995]$ make idea
make: *** 목표 'idea'를 만들 규칙이 없음. 멈춤.
points
옷.. !! 감사합니다.
아~~ 그렇게 쓰이는거구나 +_+.. 감사 합니다.
그리고 원서는 영어가.. 한글처럼 안읽혀요 ㅠ_ㅠ.. 사전으로~ ㅠ_ㅠ.