- 博客(6)
- 资源 (5)
- 收藏
- 关注
原创 Linux应用编程 | wait及waitpid
wait函数一个进程在终止时会关闭所有文件描述符,释放在用户空间分配的内存,但它的PCB还保留着,内核在其中保存了一些信息:如果是正常终止则保存着退出状态,如果是异常终止则保存着导致该进程终止的信号是哪个。这个进程的父进程可以调用wait或waitpid获取这些信息,然后彻底清除掉这个进程。我们知道一个进程的退出状态可以在Shell中用特殊变量$?查看,因为Shell是它的父进程,当它终止时S...
2018-05-05 10:57:24 478
原创 Linux应用编程 | 孤儿进程及僵尸进程
孤儿进程在Linux/Unix环境中,我们是通过fork函数来创建子进程的。创建完毕之后,父子进程独立运行,父进程无法预知子进程什么时候结束。通常情况下,子进程退出后,父进程会使用wait或waitpid函数进行回收子进程的资源,并获得子进程的终止状态。但是,如果父进程先于子进程结束,则子进程成为孤儿进程。孤儿进程将被init进程(进程号为1)领养,并由init进程对孤儿进程完成状态收集工...
2018-05-04 22:26:45 4878
原创 解决git push代码到github上一直提示输入用户名及密码的问题
问题提出我们将github上的工程clone到本地后,修改完代码后想要push到github,但一直会有提示输入用户名及密码,如下图: 原因分析出现这种情况的原因是我们使用了http的方式clone代码到本地,相应的,也是使用http的方式将代码push到服务器。如图所示,在github系统上克隆代码的地址默认采用的是http的方式,我们一般这样clone代码:gi...
2018-05-03 21:22:21 41202 4
原创 Linux应用编程 | exec函数族
fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。将当前进程的.text、.data替换为所要加载的程序的.text、.data,然后让进程从新的...
2018-05-02 22:31:18 10415 1
原创 Linux应用编程 | 进程控制与进程共享
进程控制fork函数函数说明:创建一个子进程。函数原型:pid_t fork(void);返回值:失败返回-1;成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0pid_t类型表示进程ID,但为了表示-1,它是有符号整型。(0不是有效进程ID,init最小,为1)注意返回值,不是fork函数能返回两个值,而是fork后,父子进程需【各自】返回一个。循...
2018-05-01 21:55:40 332
原创 Linux应用编程 | 环境变量相关
环境变量环境变量,是指在操作系统中用来指定操作系统运行环境的一些参数。比如说,用户登录到系统后,他的家目录是什么?默认文本编辑器是什么?默认shell程序是什么?类似这样的信息就称为环境变量。环境变量通常具备以下特征:① 以字符串形式存储; ② 以健值对格式存储:健=值[:值] (同一个健有多个值的话,值与值之间以:相隔)③ 值用来描述进程环境信息。存储形式:char *[]数...
2018-05-01 17:13:46 419
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人