为什么pthread_create会返回一个int?

时间:2012-05-24 13:57:55

标签: c multithreading pthreads

我已经看到了使用线程对数组进行求和的代码。在此代码中,创建一个线程并返回int数据类型:

int iret1, iret2;   
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1); 
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);

我知道一个线程是一个进程的子进程,它用于执行程序。对于执行程序,需要内存,并且void*数据类型返回内存。

返回int的逻辑原因是什么?任何人都可以解释一下这个原因吗?

1 个答案:

答案 0 :(得分:3)

根据man pthread_create

  

返回值

     

成功时,pthread_create()返回0;出错时,会返回错误   数字,*线程的内容未定义。

该值仅表示线程创建是否成功。

它不是像malloc那样的内存分配调用,因此我不明白为什么你认为它应该返回一个指针。