进程的含义
- 进程在内存里有三部分的数据
- 代码段:存放代码数据
- 堆栈段:存放程序的返回地址,程序的参数以及程序的局部变量
- 数据段:存放程序的全局变量,常数以及动态数据分配的数据空间 new
- 多个相同的进程代码段相同,堆栈段和数据段不同(相同程序处理不同的数据)
进程的编号
- ps 查看当前终端的进程
- ps -ef | grep name 查看具体进程 常用
- 各个参数
- UID 启动进程的操作系统也用户
- PID 进程编号
- PPID 父进程编号
- C CPU使用的资源百分百比
- STIME 进程启动时间
- TTY 进程所属的终端
- TIME 使用掉的CPU事件
- CMD 执行的是什么命令
getpid库函数
#include<sys/types/h>
#include<unistd.h>
#include<iostream>
int main()
{
cout<<getpid(); //获取进程的编号
}
多进程的基础知识
多进程
pid_t = fork()
- fork函数用于产生一个新的进程,函数返回值pid_t是一个整数,在父进程中返回的是子进程的编号,在子进程中返回的是0
int pid_t = fork();
sleep(1);
if(pid_t=0) cout<<"父进程编号:" <<getpid();
else cout<<"子进程pid " <<getpid();
- 通过fork的返回值来区分子进程和父进程,再执行不同的代码