在liunx用进程相关API函数编程一个程序,使之产生一个进程扇,父程序产生4个子进程后退出来,最后父进程打印出PID的代码
时间: 2024-09-28 11:17:25 浏览: 30
linux下的C\C++多进程多线程编程实例详解
在Linux中,你可以使用fork()和wait()系统调用来创建并管理子进程。下面是一个简单的bash脚本示例,它会创建四个子进程,并在父进程中等待它们完成:
```bash
#!/bin/bash
# 创建子进程数组
declare -a pids
# 父进程循环四次,每次创建一个子进程
for ((i=0; i<4; i++)); do
# 使用fork()创建子进程
pid=$!
if [ $? -eq 0 ]; then
echo "Parent process created child process with PID $pid."
# 将新生成的子进程ID添加到数组中
pids+=($pid)
else
echo "Error creating child process $i"
exit 1
fi
done
# 父进程退出前,等待所有子进程结束
for pid in "${pids[@]}"; do
wait "$pid" || echo "Error waiting for child process $pid"
done
# 打印所有子进程的PID
echo "All children finished, PIDs are:"
for pid in "${pids[@]}"; do
echo $pid
done
exit 0
```
在这个例子中,`fork()`函数用于创建新的进程,如果成功返回新进程的PID,否则返回-1。`wait()`函数则用于让父进程等待子进程完成。最后,通过遍历数组打印出所有的子进程PID。
注意:这个脚本需要有执行权限,运行前确保保存为.sh文件,并使用`chmod +x 文件名.sh`给予执行权限。
阅读全文