目录
什么是程序?什么是进程?他们有什么区别?
1、程序是静态的概念,例如在Linux下 ,gcc xxx.c -o pro,磁盘就会生成一个叫pro的程序。
2、通俗点说就是程序被运行起来,系统就多了一个进程。
如何查询系统中有哪些进程?
1、使用ps -aux指令查询所有进程
2、实际工作中使用grep管道来过滤进程,ps -aux|grep init(只看init的进程)
实现如下:
什么是进程标识符?
1、每一个进程都有一个非负整数的id,叫做pid。类似身份证。
2、在操作系统中默认pid=0为交换进程(swapper),作用:进程调度;
pid=1为init进程,作用:系统初始化。
3、如何获取当前进程号
代码如下
#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t pid;
pid=getpid();
printf("now pid is %d\n",pid);
return 0;
}
什么叫父进程?什么叫子进程?
如果进程A创建了进程B,A就是B的父进程,相反,B就是A的子进程。
C语言程序的存储空间是怎么分配的?
我们又低至高开始看:
正文:就是普通的代码段,控制流程、算法等等。
初始化数据:给变量赋值。数据段
未初始化数据:仅仅声明的变量。bss段
堆:调用malloc函数时去申请空间就在堆这个空间。malloc的返回值和内存地址都在堆这。
栈:比如我们声明一个void fun(){int a=0;}函数在正文调用,调用fun会把他的地址保存在栈里面,局部变量也会保存在栈里面。
高地址:int main(int argc,char *agrv)