LInux C进程控制作业——1

题目如下:

u创建子进程

u在子进程中打开文件file1,写入自己的“班级_姓名_学号”,

u父进程读取file1中的内容,并且打印显示。

u在父进程中获取已经结束的子进程的状态信息,打印该信息,并且打印结束的子进程的进程号。

代码如下:

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<fcntl.h>
#include<sys/wait.h>


int main()
{
 int pid = fork();
 int fd = open("1.txt",O_RDWR|O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO);
 if(pid == 0)
 {
   char str1[15] = "CLASS_NAME_ID";
   int bits1 = write(fd,str1,15);
   if(bits1 == -1)
   printf("write error");
 }
 else if(pid > 0)
 {
  sleep(1);
  char str2[15];
  int bits2 = read(fd,str2,15);
  if(bits2 == -1)
  printf("read error");
  else
  for(int i=0;i<15;i++)
  printf("%c",str2[i]);
  printf("\n");

  pid_t pid1;
  int status,i;
  pid1 = wait(&status);
  if(WIFEXITED(status))
  i = WEXITSTATUS(status);

 printf("Child's pid=%d .exit status=%d\n",pid1,i);

  printf("pid:%d\n",pid);
 }
 else
 {
  printf("fork error\n");
 }
 return 0;
}

学习目标有以下:

1,利用fork()函数创建子进程;

2,清楚处于子父进程的区别,并处理不同的代码段;

3,wait()函数与其相关宏的操作,得到子进程的相关信息;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值