在编写C程序时,使用system函数调用shell命令来帮助执行一些操作方便而简单,system函数的实质是调用fork()创建了一个子进程,然后调用execl执行/bin/sh程序来执行命令字符串。函数定义:int system(const char * string);函数说明:system()...
分类:
其他好文 时间:
2015-04-13 15:56:37
阅读次数:
185
这篇是网易云课堂《Linux内核分析》这门课的作业Linux提供了三个系统调用创建进程,v_fork, fork和clone。fork是将父进程的所有资源都复制给了子进程,所以不带参数。而clone是将指定资源复制给子进程,所以带参数。不论哪种方式最终都要调用do_fork。long do_fork...
分类:
系统相关 时间:
2015-04-13 00:01:56
阅读次数:
559
进程在创建它的时刻开始存活。在Linux系统中,这通常是fork()系统的结果,该系统调用通过复制一个现有的进程来创建一个全新的进程。只有在创建init进程时,是通过代码实现数据结构的填充。调用fork()的进程称为父进程,新生的进程称为子进程。在系统调用结束时,在返回点这个相同位置上,父进程恢复执...
分类:
系统相关 时间:
2015-04-12 22:33:42
阅读次数:
352
第三章 进程管理1. fork系统调用从内核返回两次: 一次返回到子进程,一次返回到父进程2. task_struct结构是用slab分配器分配的,2.6以前的是放在内核栈的栈底的;所有进程的task_struct连在一起组成了一个双向链表3. 2.6内核的内核栈底放的是thread_info结构,...
分类:
系统相关 时间:
2015-04-11 16:14:03
阅读次数:
257
Fork()函数1.所需头文件:#include#include2.函数定义pid_t fork( void );pid_t 是一个宏定义,其实质是int 被定义在#include中返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程ID; 否则,出错返回-13.函数说明:一个现有进...
分类:
系统相关 时间:
2015-04-11 06:30:18
阅读次数:
164
exec函数族函数族说明 fork() 函数用于创建一个新的子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的子进程如何执行呢?exec 函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执...
分类:
其他好文 时间:
2015-04-10 17:30:19
阅读次数:
161
(1) fork系统调用说明fork系统调用用于从已存在进程中创建一个新进程,新进程称为子进程,而原进程称为父进程。fork调用一次,返回两次,这两个返回分别带回它们各自的返回值,其中在父进程中的返回值是子进程的进程号,而子进程中的返回值则返回 0。因此,可以通过返回值来判定该进程是父进程还是子进程...
分类:
其他好文 时间:
2015-04-10 15:05:16
阅读次数:
183
1. 进程间打开文件的继承 1.1. 用fork继承打开的文件 fork以后的子进程自动继承了父进程的打开的文件,继承以后,父进程关闭打开的文件不会对子进程造成影响。 示例: #include #include #include #include #include int main() { char...
分类:
系统相关 时间:
2015-04-09 23:20:09
阅读次数:
252
1. 进程的创建 Linux下有四类创建子进程的函数:system(),fork(),exec*(),popen() 1.1. system函数 原型: #include int system(const char *string); system函数通过调用shell程序/bin/sh –c来执行...
分类:
系统相关 时间:
2015-04-09 23:20:06
阅读次数:
312
先看一个父进程向子进程发kill信号例子:
#include
#include
#include
#include
#include
int main(int argc, const char *argv[])
{
pid_t pid;
int status;
pid = fork();
if (0 == pid)
{
pri...
分类:
系统相关 时间:
2015-04-09 19:52:28
阅读次数:
150