如果我调用pthread_join(NULL)会发生什么?
答案 0 :(得分:10)
你得到一个编译时错误; pthread_join()
需要2个参数:)
答案 1 :(得分:3)
如果pthread_join()的两个预期参数中的第一个是NULL,那么任何(坏)都可能在运行时发生。来自www.opengroup.org的规范:“行为未定义,如果pthread_join()的thread参数指定的值不引用可连接的线程。”
pthread_join()的第二个参数接受NULL。
编辑:确实有些实现可以指定行为。检查系统上pthread_join的手册页。
答案 2 :(得分:0)
理想情况下,您始终会检查函数返回:
if (0 != pthread_join(thread, &result))
{
fprintf(stderr, "pthread_join error\n");
}
如果成功,pthread_join()函数返回零。否则,返回错误号以指示错误。