打印时钟在终端上,若终端输入quit,结束时钟
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<head.h>
int main(int argc, const char *argv[])
{
int fd=open("./1.txt",O_RDWR|O_CREAT|O_TRUNC,0777);
if(fd<0)
{
ERR_MSG("open");
return -1;
}
pid_t cpid=fork();
if(0==cpid)
{
while(1)
{
time_t t=time(NULL);
struct tm*lt=localtime(&t);
printf("%4d-%02d-%02d %02d:%02d:%02d\r",lt->tm_year+1900,\
lt->tm_mon+1,lt->tm_mday,lt->tm_hour,\
lt->tm_min,lt->tm_sec);
fflush(stdout);
sleep(1);
lseek(fd,0,SEEK_SET);
char ss[10]="";
int q=read(fd,ss,sizeof(ss));
if(strcmp(ss,"quit")==0)
exit(0);
}
}
else if(cpid>0)
{
char buf[10]="";
scanf("%s",buf);
write(fd,buf,sizeof(buf));
fflush(stdout);
wait(NULL);
}
else
{
ERR_MSG("fork");
return -1;
}
close(fd);
return 0;
}