标签归档:linux c clone

linux c clone进程简介用法 用途

创建克隆
在unix中,我们通常使用fork创建一个进程,但linux还提供一个复制进程的系统调用,可以指定父进程与子进程共享哪些资源,这就是clone克隆进程。
函数所需的头文件:
函数原型 int clone(int flags);
函数简介:clone函数同fork函数一样,都是创建进程,唯一的不同在于 flags参数。这个参数与子进程退出时向父进程发送的信号(SIGCHLD)有关,它的值等于这个信号与下面的某些标志的位或结果。
flags参数说明:
CLONE_VM: 两个进程共享虚拟内存空间(包括栈)
CLONE_FS: 共享文件系统信息(例当前目录)
CLONE_FILES: 共享打开的文件
CLONES_SIGHAND: 两个进程共享信号处理程序
在两个资源共享时,两个进程看见的资源是相同的。
例:flags 指定值为CLONE_SIGHAND 当其中一个进程改变了某个信号的处理程序时,两个进程都将使用新的处理程序,
flags 指定值为CLONE_FILES 不且打开的文件是共享的,每一个文件的当前位置也是共享的。