免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1295 | 回复: 5
打印 上一主题 下一主题

pthread_create()问题求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-22 10:24 |只看该作者 |倒序浏览
  1. 代码如下

  2. void * MainLoop(void *)
  3. {
  4.         cout << "run in thread " << endl;
  5.         sleep(10);
  6.         return NULL;
  7. }

  8. int main(int argc,char **argv)
  9. {
  10.         pthread_t thread;
  11.       
  12.         int ret = pthread_create(&thread,NULL,MainLoop,NULL);
  13.         if(ret != 0)
  14.                cout << "create failed " << endl;

  15.         getchar();
  16.         
  17.         return 0;
  18. }

复制代码


//代码大致是这样的,昨天写的,有点忘了,
//编译时候没有任何问题,运行就出现 segment fault
//用gdb调试发现是pthread_create()这句话出错
//我用了redhat fc1 , 内核是默认的 2.4的nptl

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-04-22 10:54 |只看该作者

pthread_create()问题求教

-lpthread

论坛徽章:
0
3 [报告]
发表于 2005-04-22 12:16 |只看该作者

pthread_create()问题求教

原来这样啊,多谢了!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-04-22 12:17 |只看该作者

pthread_create()问题求教

  1. #include <stdio.h>;
  2. #include <pthread.h>;

  3. void * MainLoop()
  4. {
  5.        printf("run in thread \n");
  6.        sleep(10);
  7. }

  8. int main(int argc,char **argv)
  9. {
  10.        pthread_t thread;

  11.        int ret = pthread_create(&thread,NULL,MainLoop,NULL);
  12.        if(ret != 0)
  13.               printf("create failed \n");

  14.        getchar();

  15.        return 0;
  16. }
复制代码


你的代码里无返回值得函数 为什么还要返回0????

论坛徽章:
0
5 [报告]
发表于 2005-04-22 12:42 |只看该作者

pthread_create()问题求教

原帖由 "mq110" 发表:

你的代码里无返回值得函数 为什么还要返回0????


楼主的代码是正确的,呵呵。
pthread_create第三个参数是一个函数指针,指向一个类型为:

  1. void *my_function(void *)
复制代码

的函数

论坛徽章:
0
6 [报告]
发表于 2005-04-22 13:29 |只看该作者

pthread_create()问题求教

pthread将线程函数定义成void *,估计是为了可以返回一个指向自定义数据的结构体.


昨天遇到的问题是,0x0000的地址segment fault.

大概在没加 -lpthread的时候,gcc默认将pthread_create()函数的指针指向了一个0x00000的地址.

出现这样的情况的时候,为什么gcc不像VC那样提示一个link错误呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP