搜索墙首页  编程技术  java  asp  ajax  php  c/c#/c++  数据库  oracle  mysql  db2  操作系统  windows  linux  股吧
首页 > 操作系统 > linux > linux编程
 1         
1楼  hoho_zhao 2009-2-22 18:19

#include <sched.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int fn()
{
    sleep(10);
    return 0;
}


int main()
{
    void *child_stack_1 = malloc(1634;
    //void *child_stack_2 = malloc(1634;   //如果多出来,那么程序就会出现段错误!少了这一句就没事!即使这一句放在 clone 后面也死掉!
    clone(fn, &child_stack_1, CLONE_VM|CLONE_SIGHAND, NULL);
    sleep(10);
    return 0;
}

如果没有注释掉第二个 malloc ,程序就段错误!郁闷,怎么也想不明白到底怎么回事

注:编译、运行环境为 rhel5 2.6.18 gcc 4.1.1

折腾了几个小时不得其解,于是上来请教大家了。

已经有1年多没有玩过Linux C 编程了,今天突然想学学多进程,结果就这样了:(



2楼  MMMIX 2009-2-22 20:28

1. 代码用 [code][/code] 括起来
2. 创建进程不要用 clone,用 fork



3楼  hoho_zhao 2009-2-22 20:54

晕,谢谢:)

我……真的打算放弃clone了,呵呵。
本来就是用 fork() 的,但是 clone() 说它能轻松实现父子进程内存共享,
于是我就放弃 fork() 转向 clone(),不过 clone() 只能用在 Linux 平台,
可移植性不好,呵呵,还是转回来问问 fork() 老大哥吧:)



 1         
您的发言将按有关规定都会存档,您须为所发表后果负责,请您遵纪守法并注意语言文明。
标题: clone,malloc多那么一句,就会段错误!【不小心贴C板块,应该首先贴这里才是】
热门关注
标题回复点击
[保留]7667
man page3487
error: expected `,' or `...' before numeric constant是什么错误啊???4454
LINUX应用程序开发指南 下载91395
application/zip和application/x-zip-compressed是什么格式啊? 谢谢3394
急:在非 socket 上进行了 socket 操作?1367
linux编程到底要不要学C++38303
shell脚本问题29275
请问<sys/types>这些头文件怎么安装--在线等25274
c函数2248
搜索墙@2009 www.pkwall.com all rights reserved QQ:276471788 [京ICP备09111534号]
声明:本站部分数据来源于网络,仅供参考,如有版权问题,请联系我们,我们将及时删除!转载本站请注明来源