程序和进程有什么区别
- 程序是静态的概念,gcc xxx.c -o pro 磁盘中生成的文件,叫做程序。
- 进程是程序的一次运行活动,通俗点的意思就是程序跑起来了,系统中就多了一个进程。
如何查看系统中有哪些进程
-
使用 ps 指令(完整形式:ps -aux)
实际工作中,不可能一下子要看这么多进程,所以可以结合 grep 来查找程序中是否存在具体某个进程
例如,我就想查找带有“init”的进程:
ps -aux|grep init
-
使用 top 指令,类似windows任务管理器
什么是进程标识符
每一个进程都有一个非负整数表示的唯一ID,叫做pid,类似身份证
- PID = 0 --> 交换进程(swapper) :进程调度
- PID = 1 --> init进程:系统初始化
获取进程标识符的函数:getpid & getppid
需要包含的库:
#include <sys/types.h>
#include <unistd.h>
函数原型1:
pid_t getpid(void);
调用这个函数之后,返回的值就是自身进程的pid,变量类型就是pid_t
函数原型2:
pid_t getppid(void);
调用这个函数之后,返回的值就是父进程的pid,变量类型就是pid_t
什么叫父进程,什么叫子进程
进程 A 创建了进程 B, 那么 A 叫做父进程,B 叫做子进程,父子进程是相对的概念,理解为人类中的父子关系。
C程序的存储空间是如何分配的(面试可能会问)