1.用文件I0以读写的方式打开一个文件,
2.利用fork ()函数创建子进程
3.父进程循环从键盘输入数据写入到文件,子进程利用usleep (200)休眠200us,然后循环从文件中读取数据打印到屏幕上。, 如果父进程输入"quit",父子进程结束
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, const char *argv[])
{
int fd;
pid_t pid;
int n;
char parentbuf[1024] = "";
char childbuf[1024]="";
fd = open (argv[1],O_RDWR|O_CREAT|O_TRUNC,0666);
pid = fork();
while(1)
{
if(pid < 0)
{
perror("Fail to fork");
return -1;
}else if(pid > 0)
{
memset(parentbuf, 0, sizeof(parentbuf));
fgets(parentbuf, sizeof(parentbuf),stdin);
n = write(fd, parentbuf, sizeof(parentbuf));
lseek(fd, -n, SEEK_CUR);
if(!strncmp(parentbuf,"quit",4))
break;
}else if(pid == 0)
{
usleep(200);
memset(childbuf, 0, sizeof(childbuf));
read(fd,childbuf, sizeof(childbuf));
if(!strncmp(childbuf,"quit",4))
break;
fputs(childbuf,stdout);
}
}
close(fd);
return 0;
}