设为首页 加入收藏 |
|
当前位置: |
TOP | ||||||||||||||
Linux系统调用跟我学――进程管理(四)
细心的读者可能注意到了,这个程序的定义里并没有包含头文件sys/types.h,这是因为我们在程序中没有用到pid_t类型,pid_t类型即为进程ID的类型。事实上,在i386架构上(就是我们一般PC计算机的架构),pid_t类型是和int类型完全兼容的,我们可以用处理整形数的方法去处理pid_t类型的数据,比如,用"%d"把它打印出来。 编译并运行程序getpid_test.c:
再运行一遍:
正如我们所见,尽管是同一个应用程序,每一次运行的时候,所分配的进程标识符都不相同。 fork 在2.4.4版内核中,fork是第2号系统调用,其在Linux函数库中的原型是:
只看fork的名字,可能难得有几个人可以猜到它是做什么用的。fork系统调用的作用是复制一个进程。当一个进程调用它,完成后就出现两个几乎一模一样的进程,我们也由此得到了一个新进程。据说fork的名字就是来源于这个与叉子的形状颇有几分相似的工作流程。 在Linux中,创造新进程的方法只有一个,就是我们正在介绍的fork。其他一些库函数,如system(),看起来似乎它们也能创建新的进程,如果能看一下它们的源码就会明白,它们实际上也在内部调用了fork。包括我们在命令行下运行应用程序,新的进程也是由shell调用fork制造出来的。fork有一些很有意思的特征,下面就让我们通过一个小程序来对它有更多的了解。
|
||||||||||||||
最新文章 |
热门文章 |
Hot 文章 |
Python | ||||||||||
|
||||||||||
C 语言 | ||||||||||
|
||||||||||
C++基础 | ||||||||||
|
||||||||||
大数据基础 | ||||||||||
|
||||||||||
linux编程基础 | ||||||||||
|
||||||||||
C/C++面试题目 | ||||||||||
|
||||||||||