1. 创建子进程
在子进程中打开文件file1,写入自己的“班级_姓名_学号”,
父进程读取file1中的内容,并且打印显示。
在父进程中获取已经结束的子进程的状态信息,打印该信息,并且打印结束的子进程的进程号。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>
#include<fcntl.h>
#include<sys/wait.h>
int main()
{
int pid;
int status,n;
pid=vfork();
if(pid<0)
{
printf("vfork error\n");
return 0;
}
else if(pid==0)
{
int fd,wd;
fd=open("child",O_RDWR|O_CREAT,0660);
if(fd<0)
{
perror("open filename:child");
}
char *str="17move3grade_Renyuhuan_1715925447\n";
wd=write(fd,str,strlen(str));
if(wd!=strlen(str))
{
perror("write:");
}
else
printf("write ok\n");
close(fd);
}
else
{
int fd,rd;
char str[35];
fd=open("child",O_RDWR|O_CREAT,0660);
if(fd<0)
{
perror("open filename child:");
}
rd=read(fd,str,33);
printf("%d\n",sizeof(str));
if(rd!=sizeof(str))
{
perror("read:");
}
printf("%s\n",str);
pid=wait(&status);
if(WIFEXITED(status))
n=WEXITSTATUS(status);
printf("child's pid= %ld eixt status= %ld\n",pid,n);
close(fd);
}
return 0;
}