Linux C 学习日记(4) 多进程操作

题目一:

有3个进程,其中一个为父进程,其余为父进程的子进程,分别打印这三个进程的进程号,父进程号,进程组号。

                                      程序一:
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
int main()
{
   
  pid_t pid1;
  pid_t pid2;

  pid1=fork();  //创建进程
  if(pid1==0)             //第一个子进程
  {
   
     printf("this is first  child process!\n");
     printf("%d\n",getpid());  //输出进程号
     printf("%d\n",getppid()); //输出父进程号
     printf("%d\n",getpgid(pid1));  //输出进程组号
  }
  else if(pid1>0)   //父进程
  {
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux系统,可以使用C语言的fork()函数创建子进程,从而形成多进程并发执行环境。具体步骤如下: 1. 在进程调用fork()函数,创建一个新的子进程。 2. fork()函数会返回两次,一次在进程返回子进程的PID,另一次在子进程返回0。 3. 判断fork()函数的返回值,如果是0则表示当前正在执行的是子进程,否则是进程。 4. 在子进程调用exec()系列函数来执行其他程序或者替换当前进程的映像,从而实现不同的任务。 5. 在进程可以继续执行其他任务,或者通过wait()函数等待子进程结束并获取其退出状态。 下面是一个简单的示例代码,展示了如何通过C语言在Linux系统创建多个子进程并发执行: ```C #include <stdio.h> #include <unistd.h> #include <sys/wait.h> int main() { pid_t pid; int i, status; for (i = 0; i < 3; i++) { pid = fork(); if (pid == 0) { printf("Child process %d is running\n", getpid()); sleep(2); printf("Child process %d is exiting\n", getpid()); return 0; } else if (pid > 0) { printf("Parent process %d created child process %d\n", getpid(), pid); } else { printf("Failed to create child process\n"); return -1; } } for (i = 0; i < 3; i++) { pid = wait(&status); if (pid > 0) { printf("Child process %d exited with status %d\n", pid, status); } } return 0; } ``` 在上面的示例代码,我们使用了for循环创建了3个子进程,每个子进程都会输出一些内容并等待2秒钟后退出。在进程,我们使用wait()函数等待子进程结束并获取其退出状态,最后输出子进程的PID和退出状态。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值