首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

当王子遇上公主,那是童话的开始,当daemon程序遇上printf呢?该如何解决

2012-04-09 
当王子遇上公主,那是童话的开始,当daemon程序遇上printf呢?好像是BUG的开始。。。#includesys/types.h#incl

当王子遇上公主,那是童话的开始,当daemon程序遇上printf呢?
好像是BUG的开始。。。


#include   <sys/types.h>
#include   <unistd.h>
#include   <signal.h>

#include   <stdio.h>
#include   <stdlib.h>

void     daemon_init(void)
{
int   i;
pid_t   pid;
if((pid   =   fork())   >   0)   {
                exit(0);
}

sleep(1);
setsid();
signal(SIGHUP,SIG_IGN);

if(   (pid   =   fork())   >   0)   {
                exit(0);
}

sleep(1);

for(i   =   0;   i   <   3;   i++){
                close(i);
                }
}

int   main(void)
{
                daemon_init();
                FILE   *fp1   =   fopen( "a ",   "w ");
                FILE   *fp2   =   fopen( "b ",   "w ");

                printf( "%s ",   "hello   world\n ");

                exit(0);
                return   0;

}


[解决办法]
bug。。
jf
[解决办法]
fork返回值是两个,一个返回给父进程(子进程的ID)一个返回给子进程(0)
[解决办法]
嗯,确实是这样,fd总是从可用的最小值开始的,但是为什么偶之前测试的时候没有问题呢……

热点排行