我在AIX / HP-UX / LINUX上使用此代码,但是当我尝试在Mac OS x上运行它时它不能正常工作:
pthread_t m_thread;
int merror;//thread return
cout << "init" << endl;
if (m_thread != NULL){
cout << "running" << endl;
merror= pthread_create(&m_thread, NULL, _exec, NULL);//initialize thread
}
在linux上创建pthread并在屏幕上显示正在运行的消息。 但是在Mac OS x上,m_thread返回null,因此o无法在MAC OS X上执行相同的代码,有人知道它为什么会发生。
编译代码:g ++ -g -o sclient sclient.cpp socket.cpp -pthread -lpthread -thread
答案 0 :(得分:3)
你不应该检查m_thread != NULL
,这没有任何意义。删除该检查,它应该工作正常。
答案 1 :(得分:0)
您在进行测试时尚未初始化m_thread
- 它的值是不确定的。