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

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

cpp 复制代码
#include<stdio.h>
#include<head.h>
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<getdtablesize();i++)
            close(i);
        while(1)
        {
            //守护进程运行的周期性代码
        }
    }   
    return 0;                                                                                                                                     
} 

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

cpp 复制代码
#include<stdio.h>
#include<head.h>
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;
} 
相关推荐
wclass-zhengge5 分钟前
数据结构篇(绪论)
java·数据结构·算法
何事驚慌5 分钟前
2024/10/5 数据结构打卡
java·数据结构·算法
结衣结衣.6 分钟前
C++ 类和对象的初步介绍
java·开发语言·数据结构·c++·笔记·学习·算法
汪子熙18 分钟前
Angular 服务器端应用 ng-state tag 的作用介绍
前端·javascript·angular.js
Envyᥫᩣ26 分钟前
《ASP.NET Web Forms 实现视频点赞功能的完整示例》
前端·asp.net·音视频·视频点赞
枫叶丹42 小时前
【在Linux世界中追寻伟大的One Piece】进程信号
linux·运维·服务器
大二转专业2 小时前
408算法题leetcode--第24天
考研·算法·leetcode
凭栏落花侧2 小时前
决策树:简单易懂的预测模型
人工智能·算法·决策树·机器学习·信息可视化·数据挖掘·数据分析
灯火不休ᝰ3 小时前
[win7] win7系统的下载及在虚拟机中详细安装过程(附有下载文件)
linux·运维·服务器
hong_zc3 小时前
算法【Java】—— 二叉树的深搜
java·算法