百度clone实例,全特么是同一个文章的内容,都是讲的clone这个函数的用法,实际的例子一个都没找到,只好翻出以前不知道哪里修修补补的一个例子,复制到博客,留着以后忘了再来复习
/**
- clone进程的函数体
*/
int clone_print(int argv)
{
printf(“clone fun argv is %d clone func printf pid : %d\n”,argv,getpid());
exit(0);
}
/**
-
利用clone创建新的进程并执行
*/
int proc_clone(void)
{
stack = (void )malloc(10241024);
if(!stack)
{
perror(“malloc”);
return 0;
}printf(“main pid :%d\n”,getpid());
int pid = clone(clone_print,(char )stack + 10241024,CLONE_VM|CLONE_VFORK,0);
if(pid == -1)
{
perror(“clone”);
}
return pid;
}