免费注册 查看新帖 |

Chinaunix

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

关于pthread_create 请教高手 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-01-28 11:47 |只看该作者 |倒序浏览
创建tftp的子线程
static int StartTftpCtrlThread(T_USS_TFTP_DATA *tftpdata)
{
    pthread_t   tid;
    int         error = 0;
    pthread_attr_t      theAttr;

    pthread_attr_init(&theAttr);
    pthread_attr_setstacksize(&theAttr, 128*1024);
   
    error=pthread_create(&tid, &theAttr, tsend, (void*)tftpdata);
    if (0 != error)
    {
        my_printf("\n\rpthread_create  tsend fail! error= %d ",error);
        return -1;
    }
    error=pthread_detach(tid);
    if (0 != error)
    {
        my_printf("\n\rpthread_detach  tsend fail! error= %d ",error);
        return -1;
    }
    return 0;
}

创建时有时会报 错误吗12(分配内存失败)   

这个代码写的应该没问题吧?  tftp server线程 是在一个大进程下的,大进程很大。

看了很多资料 该处理的都处理了  ulimit 、pthread_detach  而且我设置线程的大小才128K. 应该不会申请不到内存啊     这个程序创建子线程失败时 我又自己跑了个其他小程序创建线程 还是成功的。。   我这大进程的栈也是够用的,我看了, 而且我gdb -p 进去 call malloc 也是可以申请内存的。。

请大侠们帮忙分析分析啊~~~~~~~~~

论坛徽章:
0
2 [报告]
发表于 2011-01-28 12:57 |只看该作者
pthread_create(&tid, &theAttr, tsend, (void*)tftpdata);

tsend, (void*)tftpdata
这两个参数哪来的?

tftpdata
会不会为空?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP