代码很简单,如下;
- #include <unistd.h>
- #include <pthread.h>
- #include <iostream>
- #include <string>
- using namespace std;
- void* pfn(void* pParam)
- {
- const char* psz = (char*)pParam;
- cout << psz << endl;
- pthread_exit(0);
- }
- void* create(const char* psz)
- {
- pthread_t tid = 0;
- pthread_attr_t attr;
- pthread_attr_init(&attr);
- pthread_create(&tid, &attr, pfn, (void*)psz);
- }
- int main(int argc, char* argv[])
- {
- const char* psz = "Hello, thread!";
- create(psz);
- sleep(1000);
- return 0;
- }
编译时居然不用-lpthread选项能通过,平台是SUSE10.0企业版。
运行时死活到pthread_create时出现段错误,原因是函数的地址为零。
化了好长时间,下载了OpenSUSE10.3装了起来,终于没有问题了,当然链接时要指定-lpthread