摘要: SA1***6*69 张*铭实验环境:ubuntu 12.04 LTS 当在Linux下编写一个源程序,经过编译链接之后生成可执行程序,在终端shell命令行下输入./(可执行程序的名字)来执行的过程,实际上是shell创建一个子进程,在子进程中加载可执行程序进行执行的过程,具体的子进程加载可执行程序之前的准备工作过程以及fork、exec的工作原理分别在 Linux操作系统学习_用户进程之由新进程创建到可执行程序的加载Linux操作系统学习_用户进程之fork()与exec函数族篇1、task_struct进程控制块 为了管理进程,内核必须对每个进程所做的事情进行清楚的描述,这正是进程描述符 阅读全文
posted @ 2013-05-30 21:47 吸血鬼的泪 阅读(1635) 评论(0) 推荐(1) 编辑
摘要: 环境:ubuntu12.04 LTS1、fork() 由fork创建的新进程被称为子进程。fork函数被调用一次,但返回两次。两次返回的唯一区别是子进程的返回值是0,而父进程的返回值则是新子进程的进程ID。这是我们所熟知的过程,但是为什么会产生这样的结果? 将子进程ID返回给父进程的理由是:因为一个进程的子进程可以有多个,并且没有一个函数使一个进程可以获得其所有子进程的进程ID。fork使子进程得到返回值0的理由是:一个进程只会有一个父进程,所以子进程总是可以调用getppid以获得其父进程的进程ID。(PS:进程ID0总是由内核交换进程使用,所以一个子进程的进程ID不可能是0) 子进程和父进 阅读全文
posted @ 2013-05-30 20:16 吸血鬼的泪 阅读(2104) 评论(0) 推荐(1) 编辑
摘要: fork()函数大家应该都不陌生,一个现有进程可以调用fork函数来创建一个新进程,由fork()创建的新进程通常被称为子进程。fork()函数被调用一次,但返回两次,两次返回的区别在于,子进程的返回值为0,父进程返回值为子进程的PID值。但是,就是这大家都非常熟悉的一个函数,在你调用fork进行新进程创建的过程中,操作系统到底做了哪些工作,具体的工作过程又是什么,不知道又有多少人清楚的知道。下面在这里,将这一过程大体走一遍。 当用户编写一个程序或一段代码后,通过编译链接生成可执行文件(这里这一具体过程在前一篇博文中已经具体介绍过了,这里不再赘述),这里假设这一可执行文件的名字为str1,当. 阅读全文
posted @ 2013-05-30 15:00 吸血鬼的泪 阅读(2387) 评论(0) 推荐(0) 编辑