![](https://img-blog.csdnimg.cn/direct/5d2296467fbf49e5a59a52624392df9a.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 85
Linux学习
gsfl
这个作者很懒,什么都没留下…
展开
-
进程程序替换
可见只执行了第一个printf,程序替换后,原程序后面的代码都不执行了,因为已经被覆盖了。这些函数如果调用成功则加载新的程序从启动代码开始执行,不再返回。如果调用出错则返回-1。事实上,只有execve是真正的系统调用,其它五个函数最终都调用 execve。所以exec函数只有出错的返回值而没有成功的返回值。fork创建子进程,让子进程去替换,父进程等待。那就要用到相关的替换函数了。注意:这些函数的参数以NULL结尾。原创 2024-04-12 01:04:33 · 539 阅读 · 0 评论 -
进程等待&&wait&&waitpid
WNOHANG: 若pid指定的子进程没有结束,则waitpid()函数返回0,不予以等待。如果子进程已经退出,调用wait/waitpid时,wait/waitpid会立即返回,并且释放资源,获得子进程退出信息。如果在任意时刻调用wait/waitpid,子进程存在且正常运行,则进程可能阻塞。wait和waitpid,都有一个status参数,该参数是一个输出型参数,由操作系统填充。1.父进程通过等待,解决子进程退出的僵尸问题,回收系统资源。2.获取子进程的退出信息,知道子进程是为什么退出的。原创 2024-04-12 00:33:58 · 685 阅读 · 0 评论 -
进程创建&&fork&&进程终止
所以衡量一个进程的退出,只需知道退出码+退出信号。子进程退出时,代码和数据都被释放掉了,但子进程的PCB会保留一段时间(变成Z状态),退出时,退出码(exit_code)和退出信号(exit_signal)写入PCB中,方便父进程查看。原创 2024-04-11 15:52:29 · 940 阅读 · 0 评论 -
Linux进程概念(2)
2.如:我们在编写C/C++代码的时候,在链接的时候,从来不知道我们的所链接的动态静态库在哪里,但是照样可以链接成功,生成可执行程序,原因就是有相关环境变量帮助编译器进行查找。4.bitmap[5]:一共140个优先级,一共140个进程队列,为了提高查找非空队列的效率,就可以用5*32个 比特位表示队列是否为空,这样,便可以大大提高查找效率。3.可是活动队列上的进程会越来越少,过期队列上的进程会越来越多,因为进程时间片到期时一直都存在的,活动队列进程的时间片结束后,进程就会移动到过期队列。原创 2024-04-02 11:05:08 · 985 阅读 · 0 评论 -
Linux进程概念(1)
2.维护退出状态本身就是要用数据维护,也属于进程基本信息,所以保存在task_struct(PCB)中,换句话 说,Z状态一直不退出,PCB一直都要维护?1.进程的退出状态必须被维持下去,因为他要告诉关心它的进程(父进程),你交给我的任务,我办的怎么样了。1.僵死状态(Zombies)是一个比较特殊的状态。fork函数用于创建一个新的进程,这个新进程是当前进程的复制品,被称为子进程,而当前进程则被称为父进程。3.所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态。原创 2024-03-23 00:11:49 · 1721 阅读 · 0 评论 -
Linux-gdb调试
GDB,即GNU调试器(GNU Debugger),是GNU开源组织发布的一个强大的UNIX/Linux下的程序调试工具。它使程序员能够跟踪程序执行的过程,查看程序的源代码、汇编代码、变量的值以及内存使用情况等信息,帮助程序员发现并定位程序中的错误。安装gdb:输入gdb -v查看是否安装安装好后可以开始调试程序。注意:gdb只能调试debug版本的程序,所以在生成程序时要加上 -g生成debug程序(gcc/g++默认生成的是release版本的程序。先写一个C语言的程序,再对它进行调试。原创 2024-03-12 16:54:29 · 892 阅读 · 0 评论 -
Linux基本指令
在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。原创 2023-11-28 00:04:34 · 924 阅读 · 0 评论