一、fork1. 调用方法#include #include pid_t fork(void);正确返回:在父进程中返回子进程的进程号,在子进程中返回0错误返回:-1 子进程是父进程的一个拷贝。即,子进程从父进程得到了数据段和堆栈段的拷贝,这些需要分配新的内存;而对于只读的代码段,通常使用共享内存的...
分类:
系统相关 时间:
2015-08-25 13:49:58
阅读次数:
126
fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别:1. fork ():子进程拷贝父进程的数据段,代码段 vfork( ):子进程与父进程共享数据段2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程...
分类:
其他好文 时间:
2015-08-25 13:15:42
阅读次数:
179
CREAT PROCESSfork()|clone(參数,决定父子函数的共享内容)|do_fork()|copy_process()|dup_task_struct()创建子进程的内核堆栈。复制父进程的进程描写叙述符(task_struct)进程描写叙述符的非常多成员被清除或者设为初值设置子进程的状...
分类:
系统相关 时间:
2015-08-21 18:49:34
阅读次数:
232
进程是一个运行着一个或多个线程的地址空间和这些线程所需要的系统资源;通过ps -ajx命令来打印当前所有进程;其中具体状态表示为:S表示睡眠,R表示可运行,D表示等待,T表示停止,Z表示僵尸进程;PID表示进程号,PPID表示父进程号; 一: PID ,PPID可以通过函数getpid(),g...
分类:
系统相关 时间:
2015-08-20 20:28:49
阅读次数:
168
Linux提供三种方式复制子进程:fork(),clone(),vfork()。
区别:
fork()函数复制时将父进程的所以资源都通过复制数据结构进行了复制,然后传递给子进程,所以fork()函数不带参数;
clone()函数则是将部分父进程的资源的数据结构进行复制,复制哪些资源是可选择的,这个可以通过参数设定,所以clone()函数带参数,没有复制的资源可以通过指针共享给子进程。Clon...
分类:
其他好文 时间:
2015-08-19 23:47:56
阅读次数:
242
每一个进程都有着自己独立的地址空间,比如程序之前申请了一块内存,当调用fork函数之后,父进程和子进程所使用的是不同的内存。因此进程间的通信,不像线程间通信那么简单。但是共享内存编程接口可以让一个进程使用一个公共的内存区段,这样我们便能轻易的实现进程间的通信了(当然对于此内存区段的访问还是要控制好的)。
共享内存实现进程通信的优点:
共享内存是进程通信方式中最快速的方式之一,它的快速体现在,为...
分类:
系统相关 时间:
2015-08-19 20:47:31
阅读次数:
329
这段时间在看Unix网络编程卷1,在5.9节处理SIGCHLD信号,关于处理僵死进程第四步如下写道:信号是在父进程阻塞于慢系统调用(accept)时由父进程捕获的,内核就会使慢系统调用(accept)返回一个EINTR错误。
看到上面那段落的时候,想到我前段时间写网络服务器遇到的问题,链接地址:http://bbs.csdn.net/topics/391032981,其实里面也有我关于这方面问题的困惑。
总结一下我论坛的那个问题,其实我无论如何是不能通过信号中断,测试epoll_wait出错errno置EI...
分类:
其他好文 时间:
2015-08-19 13:31:33
阅读次数:
186
下面程序创建了两个文件,创建foo文件时,umask值为0,创建第二个时,umask值禁止所有组和其他用户的访问权限。
测试结果:
测试结果可以看出更改进程的文件模式掩码并不影响其父进程(常常是shell)的掩码...
分类:
其他好文 时间:
2015-08-18 11:53:36
阅读次数:
186
fork函数用于创建子进程,典型的调用一次,返回两次的函数。其中调用进程返回子进程的PID,而子进程则返回0。但是两个进程的执行顺序是不定的。fork函数调用完成以后父进程的虚拟存储空间被拷贝给了子进程的虚拟存储空间,因此也就实现了共享文件等操作。但是虚拟的存储空间映射到物理存储空间的过程中采用了写...
分类:
其他好文 时间:
2015-08-17 21:19:18
阅读次数:
160
代码实例 #include<stdio.h>
#include<unistd.h>
/*程序输出结果
主进程id:8377
进程id:8377,父进程id:3290,插曲
进程id:8377,父进程id:3290,Bye
进程id:8378,父进程id:8377,hello
进程id:8378,父进程id:8377,Bye...
分类:
系统相关 时间:
2015-08-17 01:15:19
阅读次数:
161