1.什么是进程?
进程指的是正在运行的程序。
2.进程ID
每个进程那个都有唯一的标识符,既进程ID,简称pid。
3.进程间的通信的几种方法
管道通信:有名管道,无名管道。
信号通信:信号的发送,信号的接受,信号的处理。
IPC通信:共享内存,消息队列,信号灯。
Socket通信
4.创建进程函数
fork函数
头文件:include<unistd.h>
函数原型:pid_t fork(void)
返回值:fork函数有三种返回值,在父进程中,fork返回新创建的子进程的PID,在子进程中,fork返回0,如果出现错误,fork返回一个负值。
5.获得pid函数
getpid():获得当前进程的pid
getppid():获得当前进程的父进程的pid
6.简单例程
#include <stdio.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
pid = fork();
if(pid < 0){
printf("fork is error\n");
return -1;
}
//父进程
if(pid > 0){
printf("this is father pid,pid = %d\n",getpid());
}
//子进程
if(pid == 0){
printf("this is child pid,pid = %d\n",getpid());
printf("this is child pid's father pid = %d\n",getppid());//获得子进程的父进程PID
}
return 0;
}
子进程相当于父进程的拷贝。
父进程从程序开始执行,子进程从fork()函数创建之后执行。