ln hello.c hello2.c //通过ln来创建hello.c的硬链接文件hello2.c
只有文件才可以创建硬链接,删除其中一个硬链接文件时,别的文件还是可以查看,当修改互为硬链接的文件时,所有文件同时更新
ln -s //创建软链接
目录可以创建软链接
段名 | 组成 | 来源 |
---|---|---|
代码段 | .text | 可执行文件 |
数据段 | .data bss | 可执行文件 |
堆栈段 | heap stack | 请求 |
变量 | 位置 |
---|---|
经过初始化的全局变量和静态变量 | .data |
未经过初始化的全局变量和静态变量 | .bss |
函数内部声明的局部变量 | .stack |
const修饰的全局变量 | .txet |
const修饰的局部变量 | .stack |
字符串常量 | .text |
。bss是存放在程序中未初始化的全局变量和静态变量,程序执行之前BSS段会自动清0
ps -aux //查看进程
pstree //以树状图结构显示出进程 yum install psmisc
top //实时显示系统各进程的资源占用
kill PID //杀死进程
并发------>单核,进程同时存在或者交错进行
并行------>多核,两种进程同时进行
进程执行exec()函数系列
由于是系统函数,所以头文件应该加上<unistd.h>
函数原型是
int execv(const char *path,char *const argv[]);
execv返回值
-1---->失败
不返回---->成功
system函数原型
#include<stdlib.h>
int system(const char *command);
//本质是shell执行命令
结束进程
- return() //只在主函数内
- exit() //用在main函数以外的函数
- abort() //终止异常退出
暂停
#include<signal.h>
int pause()
返回值是1
等待
pid_t wait(int *status)等价于pid_t waitpid(-1,status,0)
函数原型
pid_t waitpid(pid_t pid,int* status,int options);
参数说明
参数 | 含义 | 说明 |
---|---|---|
pid | 等待的进程 | <-1:等待进程组为pid的所有进程;-1:等待任何子进程;0:等待同组的进程;>0:进程为pid的子进程 |
status | 子进程结束状态 | 判断正常使用:WIFEXITED(status);判断异常使用:WIFSIGNALED(status);判断暂停使用:WIFSTOPPED(status); |
optionns | 选项 | WNOHANG若子进程没有结束,返回0,不予等待;若子进程结束,返回该子进程的ID。WUNTRACED若子进程进入暂停状态,则马上返回,单子进程的结束状态不予理会 |
线程与进程
https://blog.csdn.net/feiBlog/article/details/85397287
https://www.cnblogs.com/chenGG/p/10935371.html
https://www.cnblogs.com/chenGG/p/10935371.html