linux 进程创建 c语言,linux c语言创建daemon进程

无详细内容 无 #include stdio.h#include unistd.h#include stdlib.h#include time.h#include fcntl.h#include string.h#include sys/stat.hvoid creat_daemon(void);int main(void){ time_t t; int fd; creat_daemon(); //创建daemon进程 while(1){ fd = ope

#include

#include

#include

#include

#include

#include

#include

void creat_daemon(void);

int main(void)

{

time_t t;

int fd;

creat_daemon(); //创建daemon进程

while(1){

fd = open("./daemon.log",O_WRONLY|O_CREAT|O_APPEND,0644);

if(fd == -1){

printf("open error!\n");

break;

}

t = time(0);

char *buf = "this is a test";

write(fd,buf,strlen(buf));

close(fd);

sleep(1);

}

return 0;

}

void creat_daemon(void)

{

pid_t pid;

pid = fork();

if( pid == -1){

printf("fork error!\n");

exit(EXIT_FAILURE);

}else if(pid > 0){ //父进程退出,子进程由init进程接管

exit(EXIT_SUCCESS);

}{//子进程

if(setsid() == -1){ //创建新的会话,脱离终端的控制

printf("setsid error!\n");

}

//子进程继承了父进程的工作目录,这里也要重置

//chdir("/home/chenlinzhong/trunk/demo/linenoise");

int i;

for( i = 0; i < 3; ++i)

{

close(i); //关闭 stdin stdout stderror

}

umask(0); //子进程继承了父进程文件掩码,需要重置

}

return;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值