作业:
1. 守护进程
2. 打印时钟在终端上,若终端输入quit,结束时钟。
3. 复习一下传值和传址
#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;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include<head.h>
int main(int argc, const char *argv[])
{
time_t t;
struct tm* info = NULL;
char a[20]="";
char b[]="quit";
pid_t cpid = fork();
pid_t wpid = 1;
if(cpid > 0)
{
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);
if( waitpid(-1,0,WNOHANG )>0)
break;
}
}
else if(0 == cpid)
{
while(1)
{
scanf("%s",a);
if(strcmp(a,b)==0)
exit(0);
}
}
return 0;
}
XMind