LINUX系统编程
文章平均质量分 76
novice171
这个作者很懒,什么都没留下…
展开
-
终止进程,回收子进程
@[TOC]终止进程 进程终止 #include<stdlib.h> void exit(int status); 对exit()的调用通常会执行一些基本的关闭步骤,然后通知内核终止这个进程.参数status用于标识进程的退出状态.具体来,会返回给父进程status&0377这个值. EXIT_SUCCESS和EXIT_FAILURE这两个宏分别表示成功和失败,而且是可移植的.在LINUX中,0通常表示成功;非0值,如1或-1,表示失败. 因此,成功退出时,只需要加上这样一行代码,原创 2021-08-03 19:46:08 · 667 阅读 · 0 评论 -
LINUX系统编程-写时复制
写时复制vfork() 调用fork()时, 内核会复制所有的内存数据结构,复制进程的页表项,然后把父进程的地址空间按页复制到子进程的空间中.糟糕的是,这种按页复制方式是十分耗时的. 在现代UNIX系统如Linux中,采用了写时复制的方式,而不是对父进程空间进行整体复制. 写时复制的前提假设很简单:如果有多个进程要读取他们自己那部分资源的副本,那么复制是不必要的.每个进程只要保存一个指向这个资源的指针就可以了,只要没有一个进程修改自己的"副本",每个进程就好像独占那个资源,从而避免了复制带来的开销. 如果某原创 2021-08-03 15:47:28 · 271 阅读 · 0 评论