IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)

1.守护进程(幽灵进程)

#include
#include
int main(int argc, const char *argv[])
{
    pid_t cpid = fork();
    if(0==cpid)
    {   
        //创建新的会话
        pid_t sid=setsid();
        printf("sid=%d\n",sid);
        //修改运行目录为不可卸载的文件目录下
        chdir("/");
        //清空文件权限掩码
        umask(0);
        //关闭所有文件描述符
        for(int i=0;i

2.输出一个时钟,终端输入quit时退出时钟

#include
#include
int main(int argc, const char *argv[])
{
    char a[20]="";
    pid_t cpid = fork();
    FILE *fp=fopen("1.txt","w");
    if(cpid>0)
    {   
        sleep(1);
        scanf("%s",a);
        fputs(a,fp);
        fclose(fp);
        while(1)
        {
            pid_t pid=waitpid(-1,NULL,WNOHANG);
            if(pid>0)
                break;
        }
    }   
    if(0==cpid)                                                                                                            
    {   
        FILE *fp=fopen("1.txt","r");
        time_t t;
        struct tm* info=NULL;
        while(1)
        {    
            t=time(NULL);
            info = localtime(&t);
            printf("%d-%02d-%02d %02d:%02d:%02d\r",\
                    info->tm_year+1900,info->tm_mon+1,info->tm_mday,\
                    info->tm_hour,info->tm_min,info->tm_sec);
            fflush(stdout);
            sleep(1);
            fgets(a,5,fp);
            if(0==strcmp(a,"quit"))
                exit(0);
        }
        fclose(fp);
    }   
    return 0;
} 

IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)_第1张图片

 

 

IO进程线程第五天(8.2)进程函数+XMind(守护进程(幽灵进程),输出一个时钟,终端输入quit时退出时钟)_第2张图片 

 

你可能感兴趣的:(前端,算法,服务器)