linux
文章平均质量分 65
WEIv.
这个作者很懒,什么都没留下…
展开
-
linux:int main(int argc,char *argv[],char *envp[])
int main( int argc , char *argv[ ] , char *envp[ ] ) 详解: main函数的参数列表保存了输入参数的信息:第一个参数argc记录了输入参数的个数。第二个参数是字符串数组的,字符串数组的每个单元是char*类型的,指向一个c风格字符串,arg[ ]指向的数组中至少有一个字符指针,即ar原创 2017-10-24 18:36:16 · 1461 阅读 · 0 评论 -
linux:进程 & 页表
在学习liinux的过程中,多处渗透着操作系统的知识,下面做一些自己对于fork函数的理解的总结。fork函数系统调用可实现进程的复制,那么我们先说一说进程。进程,主要包含三个元素:o. 一个可以执行的程序; o. 和该进程相关联的全部数据(包括变量,内存空间,缓冲区等等); o. 程序的执行上下文(execution context)。一个进程表示原创 2017-10-29 20:46:07 · 4687 阅读 · 0 评论 -
linux:僵死进程
在linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进原创 2017-10-31 08:11:25 · 265 阅读 · 0 评论 -
linux:关于fork()的例题
下面这段代码输出几个a?int main(){ fork()||fork(); printf("a\n"); exit(0);}答案是3个,下面我们来一起分析一下:父子进程的pid是题目的关键,pid=0,ppid!=0.或(||)的关系下第一个fork()为真,就无需判断第二个,两个fork()均为0时,结束。所以这段代码可以输出三个a原创 2017-11-01 09:22:52 · 601 阅读 · 0 评论 -
linux:fork()函数
一起学习Linux下的C编程,就从利用fork开辟一个新的进程开始吧。我们先来谈一谈fork()函数:fork函数函数原型pid_t fork( void);(pid_t 是一个宏定义,其实质是int 被定义在#include中)!返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID;否则,出错返回-1函数说明一个现有进程原创 2017-10-30 15:23:58 · 320 阅读 · 0 评论 -
linux:exec系列进程替换函数
一.exec替换进程映像引:fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新程序的内容替换了。exec系列原创 2017-11-20 16:44:03 · 2081 阅读 · 0 评论 -
linux:Signal ()函数
1. 功能设置某一信号的对应动作2. 声明#include typedef void (*sighandler_t)(int);sighandler_t signal(int signum, sighandler_t handler);3. 参数说明 第一个参数signum:指明了所要处理的信号类型,它可以取除了SIGKILL和SIGSTOP外的任何一种信号。 第二转载 2017-11-20 16:53:45 · 170 阅读 · 0 评论