使用文件IO 实现父进程向子进程发送信息,并总结中间可能出现的各种问题
#include<myhead.h>
char* my_write(char *buf)
{
int wfd=open("./write.txt",O_WRONLY|O_CREAT|O_TRUNC,0666);
write(wfd,buf,sizeof(buf));
close(wfd);
return buf;
}
char* my_read(char *buf)
{
int rfd=open("./write.txt",O_RDONLY);
read(rfd,buf,sizeof(buf));
close(rfd);
return buf;
}
int main(int argc, char *argv[])
{
int res=fork();
if(res>0)
{
printf("父进程:请在五秒内输入信息\n");
char buf[1024];
scanf("%s",buf);
my_write(buf);
}else if(res==0)
{
sleep(5);
char buf[1024]={0};
my_read(buf);
printf("子进程:接收到消息:%s\n",buf);
}else if(res==-1)
{
perror("fork");
return 1;
}
return 0;
}
效果图
子进程等待五秒后即可争抢时间片,导致父进程输入未完成,存储数据的文件未清空,子进程输出上次父进程发送消息