博客
关于我
pthread_create导致的程序崩溃
阅读量:802 次
发布时间:2023-03-04

本文共 605 字,大约阅读时间需要 2 分钟。

今天在使用pthread_create创建线程时,程序一运行就直接死掉了。经过对比,我发现自己在调用pthread_create时传递了NULL作为第一个参数,导致程序崩溃。错误信息显示程序因“Segmentation fault”而终止。根据pthread_create的man pages,第一个参数必须是线程标识符,必须使用-pointer类型,不能传递NULL。

为了修复这个问题,我修改了代码,正确使用了&tid作为第一个参数,并添加了错误检查。编译使用gcc加上-lstdc++和-lpthread。测试后,程序成功运行了。

以下是修复后的代码:

#include 
#include
void *ThreadTest(void *arg) { printf("Enter ThreadTest \r\n");}int main(void) { pthread_t tid; if (pthread_create(&tid, NULL, ThreadTest, NULL) != 0) { printf("Create thread error! \n"); } else { printf("Create thread success! \n"); } getchar(); return 0;}

转载地址:http://xwafk.baihongyu.com/

你可能感兴趣的文章
Python Matplotlib 中如何用 plt.savefig 存储图片
查看>>
Python matplotlib 中更换画布背景颜色
查看>>
Python进阶03 模块
查看>>
python matplotlib简单使用
查看>>
Python mock Patch os.environ 和返回值
查看>>
Python mock 修补另一个函数调用的函数
查看>>
python mqtt 客户端实现
查看>>
Python Multiprocessing - 将类方法应用于对象列表
查看>>
Python multiprocessing.Queue 与 multiprocessing.manager().Queue()
查看>>
Python multiprocessing使用详解
查看>>
python mysql 基于 sqlalvhrmy_Python操作MySQL:pymysql和SQLAlchemy
查看>>
python mysql 布尔类型_python语言的基础学习:基本类型,函数,面向对象,模块,mysql数据库...
查看>>
Python NLP完整项目实战教程(1)
查看>>
Python NLP自然语言处理详解
查看>>
python nltk nltk_data 离线安装,chatterbot
查看>>
Redis 限流的 3 种方式,还有谁不会?
查看>>
Python这么慢,为啥大公司还在用?
查看>>
python note 06 编码方式
查看>>
python numba 转灰度图_使用NumPy、Numba的简单使用(二)
查看>>
Python Numpy 关于 linspace()函数 使用详解(全)
查看>>