创建一对父子进程:
父进程负责向文件中写入 长方形的长和宽
子进程负责读取文件中的长宽信息后,计算长方形的面积
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>
int main(int argc, const char *argv[])
{
int retval=fork();
if(retval>0)
{
int fd=open("./1.txt",O_CREAT|O_WRONLY|O_TRUNC,0666);
printf("enter the width and height:");
char buf[20];
char buff[20];
char bufff[10]={' '};
scanf("%s",buf);
scanf("%s",buff);
while(getchar()!='\n');
write(fd,buf,strlen(buf));
write(fd,bufff,strlen(bufff));
write(fd,buff,strlen(buff));
close(fd);
sleep(3);
}
else if(retval==0)
{
sleep(3);
int fd=open("./1.txt",O_RDONLY);
printf("the acreage is:");
char buf[20]={0};
read(fd,buf,20);
int width;
int height;
sscanf(buf,"%d %d",&width,&height);
printf("%d\n",width*height);
close(fd);
}
else if(retval==-1)
{
perror("fork");
return 1;
}
return 0;
}