我已经搜索了很多,并且知道也许我已经遇到了一些有用的答案,但无法理解它们……我并不是一个真正的程序员:)
情况是我想实现一个守护进程 - 后台进程完全独立于同时发生的事情 - 解析从服务器接收的数据(正在编写 IRC 客户端),但使用 select 以非阻塞方式进行()。
这是我的代码片段。但我无法在程序的注释//rest 下访问 printf
我希望它是可以理解的。
pID=fork();
if(pID < 0){
//failed to execute fork()
perror("Error while forking");
getchar();getchar();
exit(1);
}
if(pID > 0){
exit(0);
}
//child down here
umask(0);
//setting new session
sID = setpgid(0,0);
if(sID < 0){
perror("Error while setting new session");
getchar();getchar();
exit(1);
}
while(1){
sleep(1);
if((readReady = readReadiness(sockfd))==0)
continue;
else{
//here am going to recv() data from server
printf("I am child and parsing\n"); //testing if its in background -i would like it not to print to stdout (run in background)
}
}
//rest of the program down here
printf("Why isnt it printing to stdout ??\n");
我应该用孙子吗?(双叉?)还是...?
提前致谢