[완료] dup() 함수 사용 기법을 모르겠습니다.
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;
현재 소스를 분석 하고 있는데.. 정확히 어떤 목적으로 어떤 역활을 하려고 했는지.. 알수가 없네요. ㅠ_ㅠ.. 주석은 제가 찾아 다니면서..
달아 놓은겁니다. 생각 하자면.. 데몬을 목적으로 한것 같기도 한데.. ㅜ.ㅜ 알려주세요~~ ㅠ_ㅠ
Advanced Programming in the
Advanced Programming in the UNIX Environment 책을 읽어보시길 권합니다. 원서를 보시는 것이 좋습니다.
허접한 실력이지만...
허접한 실력이지만... 대충 보면,
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'를 만들 규칙이 없음. 멈춤.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
옷.. !! 감사합니다.
아~~ 그렇게 쓰이는거구나 +_+.. 감사 합니다.
그리고 원서는 영어가.. 한글처럼 안읽혀요 ㅠ_ㅠ.. 사전으로~ ㅠ_ㅠ.
댓글 달기