【无标题】

 

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <stdlib.h>
  4 #include <time.h>
  5 #include <unistd.h>
  6 #include <head.h>
  7 int main(int argc, const char *argv[])
  8 {
  9     char a[20]="";
 10     pid_t cpid=fork();
 11     if(cpid>0)
 12     { 
 13         int p=1; 
 14         while(1) 
 15         { 
 16             t=time(NULL); 
 17             info=localtime(&t); 
 18             printf("%d-%02d-%02d %02d:%02d:%02d\r",\ 
 19                     info->tm_year+1900,info->tm_mon+1,info->tm_mday,
 20                     info->tm_hour,info->tm_min,info->tm_sec); 
 21             pid_t wpid=waitpid(-1,&p,WNOHANG);  
 22             if(wpid>0) 
 23             {
 24                 break;
 25             }
 26             fflush(stdout);
 27             sleep(1);
 28         }
 29     }
 30     else if(0==cpid)
 31     {   
 32         while(1)
 33         {   
 34             scanf("%s",a);
 35             if(strcmp(a,"quit")==0)
colock.c [+]                                          11,12-15      顶端
-- 可视 --                                                   13
#include <stdio.h>
#include <string.h>
#include <stdlib.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)
        {                                          
            //守护进程运行的周期性代码
            sleep(1);
        }
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值