1、进程的创建
#include <sys/types.h>
#include <unistd.h>
pid_t fork(void);
- 主要功能:
- 将当前的进程复制一份,然后这两个进程同时从本函数的下一语句开始执行;
- 该函数会返回两次,一次返回父进程,值是子进程的PID,一次返回子进程,值固定为0;
-
父子进程是并发执行的,没有先后次序,若要控制次序,要依赖于信号量、互斥锁、条件量等其他条件;(pid就是控制先后的常用条件)
pid_t getpid(void); //获取当前进程的pid
pid_t getppid(void); //获取当前进程父进程的pid
示例代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
int main(int argc,char *argv[])
{
//获取当前进程的子进程
pid_t pid_child=fork();
//获取当前进程pid
pid_t pid=getpid();
//获取当前进程的父进程的pid
pid_t ppid=getppid();
printf("当前进程pid:[%d],父进程的pid:[%d],子