Linux系统编程一(程序、进程和线程)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值