使用文件IO 实现父进程向子进程发送信息,并总结中间可能出现的各种问题
#include<myhead.h>
int main(int argc, const char *argv[])
{
pid_t pid =fork();
/* int wfd=open("./test4.txt",O_WRONLY|O_CREAT|O_TRUNC,0664);
if(wfd==-1)
{
perror("open error");
return -1;
}
char warr[128]="";
printf("请输入>>>");
fgets(warr,sizeof(warr),stdin);
warr[strlen(warr)-1]=0;
write(wfd,warr,sizeof(warr));
close(wfd);*/if(pid >0)//主进程
{
int wfd=open("./test4.txt",O_WRONLY|O_CREAT|O_TRUNC,0664);
if(wfd==-1)
{
perror("open error");
return -1;
}
char warr[128]="";
printf("请输入>>>");
fgets(warr,sizeof(warr),stdin);
warr[strlen(warr)-1]=0;
write(wfd,warr,sizeof(warr));
close(wfd);
// printf("进入父进程\n");
}
else if(pid==0)
{
printf("进入子进程");
int rfd=open("./test4.txt",O_RDONLY);
if(rfd==-1)
{
perror("open error");
return -1;
}
char rarr[128]="";
while(1)
{
int res=read(rfd,rarr,sizeof(rarr));
write(1,rarr,res);
if(res==-1){break;}
}
close(rfd);
}
/* else
{
perror("fork error");
return -1;
}*/
return 0;
}