Linux 简单的守护进程 程序源代码是什么怎么写? 5
//根据麦子学院视频改编。。。。#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<sys/typ...
//根据麦子学院视频改编。。。。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main(int argc,char**argv)
{
int num=0;
//sundy print log
char content[128]="";
//1,创建一个子进程,退出父进程
pid_t pid=fork();
if(pid<0)
{
perror("fork");
return -1;
}
else if(pid>0)
{
exit(0);
}
//2,设置新的会话
pid_t ret=setsid();
if(ret<0)
{
perror("setsid");
}
//3,关闭所有文件标识符
for(int i=0;i<395567;i++)//''/proc/sys/fs/file_max''
{
close(i);
}
//4,修改工作目录
if(chdir("/") < 0)
{
perror("chdir");
}
//5,修改文件权限掩码
umask(0);
//6,用户应用程序
while(1)
{
int fd;
fd=open("/tmp/mylog.log",O_CREAT|O_RDWR|O_APPEND,06666);
if(fd>0)
{
sprintf(content, "sundy print log = %d\n", num);
write(fd,content,strlen(content));
close(fd);
}
num++;
sleep(3);
}
return 0;
} 展开
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
int main(int argc,char**argv)
{
int num=0;
//sundy print log
char content[128]="";
//1,创建一个子进程,退出父进程
pid_t pid=fork();
if(pid<0)
{
perror("fork");
return -1;
}
else if(pid>0)
{
exit(0);
}
//2,设置新的会话
pid_t ret=setsid();
if(ret<0)
{
perror("setsid");
}
//3,关闭所有文件标识符
for(int i=0;i<395567;i++)//''/proc/sys/fs/file_max''
{
close(i);
}
//4,修改工作目录
if(chdir("/") < 0)
{
perror("chdir");
}
//5,修改文件权限掩码
umask(0);
//6,用户应用程序
while(1)
{
int fd;
fd=open("/tmp/mylog.log",O_CREAT|O_RDWR|O_APPEND,06666);
if(fd>0)
{
sprintf(content, "sundy print log = %d\n", num);
write(fd,content,strlen(content));
close(fd);
}
num++;
sleep(3);
}
return 0;
} 展开
1个回答
展开全部
//根据麦子学院视频改编。。。。 #include #include #include #include #include #include #include int main(int argc,char**argv) { int num=0; //sundy print log char content[128]=""; //1,创建一个子进程,退出父进程 pid_t pid=fork(); if(pid0) { exit(0); } //2,设置新的会话 pid_t ret=setsid(); if(ret0) { sprintf(content, "sundy print log = %d\n", num); write(fd,content,strlen(content)); close(fd); } num++; sleep(3); } return 0; }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询