LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 605|回复: 1

请问clone()怎么用的?

[复制链接]
发表于 2005-2-3 20:51:19 | 显示全部楼层 |阅读模式
#include <sched.h>
#include <stdio.h>

int fn(void *p)
{
        int i=0;
        printf("a");
        return i;
}

char stack[30];

int main()
{
        int i=0;
        i=clone(fn , (void *)stack , CLONE_FS , NULL);

        printf("%d" , i);
}
这段程序怎么运行有错的啊?
看了一下man,好像没什么问题啊!
发表于 2005-2-4 10:18:45 | 显示全部楼层
堆栈的方向在intle和amd的cpu上是向低地址方向增长的,你看看clone的man page,你调用clone的时候的堆栈地址不对,所以会出现SIGSEGV错误,将地址改为stack + (sizeof(stack) -1)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表