wait系统调用

reference:Wait System Call in C

只强调几点,剩下的直接看参考链接内容就好了,不是偷懒,而是里面内容写的很好了,没必要再写一遍了,这种东西就是单纯的系统调用而已,理解了功能,就完事了,没啥好说的。

  1. 如果父进程等待1个子进程,使用wait(NULL)就行
  2. 如果等待多个子进程
    1. 如果不需要指定特定进程,使用多个wait(NULL)就行
    2. 如果需要指定,则需要使用waitpid(pid, &stat, option),对于option,有两个选项,一个是0,就相当于是wait,阻塞父进程,干等着,还有WNOHANG不会阻塞父进程,只是看看执行完没有,然后给出一个返回值(如果子进程结束,返回子进程pid,没结束,就返回0,如果waitpid已经等到子进程结束返回pid了,再使用waitpid就会fanh-1,你都等来了,再等就啥也等不到了。

此外就是关于返回码信息了,wait的唯一参数和waitpid的第二个参数,都可以赋值&statNULL,其中stat定义为int stat;

给一些宏命令传递返回码的值,能够做出相关的判断。
在这里插入图片描述

具体细节参考链接文章即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/384598.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux进程间通信:共享内存与管道

references: [1] IPC through shared memory [2] Inter Process Communication (IPC) [3] https://www.geeksforgeeks.org/pipe-system-call/ [4] watch command in Linux with Examples 参考链接1和2是介绍了共享内存IPC的简单原理和相关系统调用的使用参考链接3是介绍了管道通…

find command基本使用

find命令通常用于根据文件名查找文件,这是最基本用法。 find [path] -name/-iname [filename] path写要查找的路径,自动递归查找filename写文件名,可以使用通配符*还有其他什么的表达式 具体细节请man find查阅文档。

正则表达式特别需要注意的点:“空“字符的匹配

在正则表达式中,[...]代表1个字符,不管里面有多少字符,最终这个东西的结果都是1个字符。 对于表达式[^a]表达的匹配除了a之外的字符,并且是1个字符。 需要注意的是,有些特殊字符是不会被匹配的。 我们看一个示例&am…

vim多列操作--插入/删除

插入 How to insert text at beginning of a multi-line selection in vi/VimVim Commands 删除 ctrl v使用上下左右键选中一片区域按d删除

vim进行行内某部分的复制剪切粘贴

ctrl v使用方向键选中你要复制的部分 按d(剪切)或者按y(复制)再移动到你的目标位置,按p粘贴(在正常模式下才行,如果不是,先按esc) 这个过程与你操作word文档的复制粘贴…

函数调用堆栈

基于孟宁老师的Linux内核分析 1 int g(int x){ 2 int y x 3;3 return y;4 }5 6 int f(int x){7 int z x 10;8 return g(z);9 }10 11 int main(){12 int a f(8) 1;13 return 0;14…

gdb调试的几点提示(1)

GDB debugger Examining Memory Continuing and Stepping How to translate a virtual memory address to a physical address? s和n是C语言的下一步 si和ni是汇编语言下一步 gdb能够查看的都是虚拟地址,不能查看物理地址,应用程序都不能查看物理地址…

C语言读取文件

C语言一次性读取文件 C - File I/O C library function - fread() 需要注意的点 fgets函数,一次只能读取一行,并且在结尾自动添加\0fread函数,可以读取很多内容,但是不会添加\0需要手动完成,具体看[参考1]

Vivado提高综合和实现的速度

让计算机的资源尽可能给vivado,综合、实现的时候修改一个参数 jobs改为你的计算机的最大值,我的计算机是12核的。 速度会快很多!

安装Ubuntu RISC V toolchain失败(网速、git配置原因)

git获取大容量工程出错:RPC failed; curl GnuTLS recv error : Decryption has failed. error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.fatal: The remote end 官方GitHub仓库 gitee镜像仓库 如果网速不够&#xff0…

Linux环境变量 set env export区别

参考链接 How to Set Environment Variables in Linux set 他能够显示当前shell的环境变量 它针对的对象是当前shell,如果关闭了就没了! 直接使用set --help查看就可以。 env 显示当前用户的环境变量,针对的当前登录的用户 export 它能…

VirtualBox Ubuntu个人配置

注意这里VT-x启用,除了在BIOS启用CPU虚拟化,还得在命令行设置一次才可以勾选。 F:\>cd F:\VirtualBox # 进入VirtualBox安装目录F:\VirtualBox>VBoxManage.exe list vms # 查找所有虚拟机 "rhel64" {240f96d8-6535-431d-892e-b70f3dc4…

Ubuntu停止维护版本的软件源配置和系统升级方法

这里以Ubuntu 20.10版本为例(当前是2022.2.14,该版本已经停止维护),我们现在需要正常使用该版本,并且期待升级到21.10版本,我们需要 配置正确是软件源升级该版本 配置正确的软件源 配置国内镜像源 我们…

优质学习内容(自用)

Verilog Verilog教程HDLBits — Verilog Practice中科大Verilog OJVerilog语法和典型电路verilog中if与case语句不完整产生锁存器的问题 Chisel chisel offcial website playground OpenXiangShan Chisel playgroundchisel IntelliJ IDEA playground library Maven libr…

diff and colordiff on Ubuntu

在Ubuntu中使用diff来对比文件差异,但是不是很好用,尤其是着色方面,用起来很麻烦,因此可以安装colordiff。 我们有两个文件file1和file2,使用命令 colordiff file1 file2 -y -B -W 140就可以对比文件差异&#xff0c…

基于IntelliJ IDEA和Ubuntu的Chisel开发环境搭建

注意!本教程不是详细解说!只说思路,其余请自己查阅!不适合小白用户。 环境 Ubuntu 20.04 LTSIntelliJ IDEA 过程 在Ubuntu下安装IDEA,具体版本号的使用,请自行查阅官网安装IDEA插件,EasySoc…

verilator编译 更新文件的规则

本文请读者【直接关闭】,我后面的实践结果似乎和本文的实践结果不一样,真是见鬼了!我不知道发生了什么,还没有来得及进一步校验! 在其他文件不变的前提下,如果即将生成的mk文件和已有的mk文件不一样&#…

帮助你成为高手的视频和资料

1. 为什么大多数人不会真正成功 博客链接 视频链接 2. TED演讲:真正拉开你与周围人之家差距的,是自学能力 视频链接 3 埃隆马斯克:第一性原理,少用类比,类比多了就不能抓住本质了 4 如何成为一个顶尖高手 文章链…

核心思想

程序员是能够改变世界的,至少是改变自己的世界。 对于重复的工作,你可以写一个shell脚本让他自动化执行; 对于麻烦的工作,你可以看看有没有相关的插件让它操作起来更简化,实在不行你自己造一个; 程序员必…

【数据结构】快速排序非递归算法及其改进

在学数据结构中排序这一章节的时候,有一道有关快速排序的作业题描述如下: 按下述要求编写快速排序的非递归算法: 定义一个栈(或队列),把整个序列的上、下界入栈(或队列)。当栈&#…