打印时钟在终端上,若终端输入quit,结束时钟
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<head.h>
#include<time.h>
int main(int argc, const char *argv[])
{
pid_t pid1=fork();
if(pid1>0)
{
int a;
struct tm* t1=NULL;
time_t t;
while(1)
{
pid_t pid2=waitpid(pid1,&a,WNOHANG);
if(a==256)
break;
t=time(NULL);
t1=localtime(&t);
printf("%ld年:%d月:%d日:%d时:%d分:%d秒\r",t1->tm_year+1900,t1->tm_mon+1,t1->tm_mday,t1->tm_hour,t1->tm_min,t1->tm_sec);
fflush(stdout);
}
}
else if(pid1==0)
{
char a[10];
while(1){
scanf("%s",a);
printf("%s\n",a);
if(strcmp(a,"quit")==0)
break;
}
exit(1);
}
return 0;
}
幽灵进程
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
pid_t pid1=fork();
if(0==cpid)
{
//穿件会话
pid_t sid=setsid();
printf("sid = %d\n",sid);
//修改运行目录不可删除目录
chdir("/");
//清空文件权限掩码
umask(0);
//关闭所有的文件描述符
for(int i=0;i<getdtablesize();i++)
close;
while(1)
{
sleep(1);
}
}
return 0;
}