某东的课要求我们实现一个用socket通信的程序, 用C/C++写,虽然用
很多语言写过这个了,但是这次想在linux平台上试一下。于是就写了个代码测试一下,然而在使用pthread的时候,程序报了一个貌似函数类型错误的的错误,然后就大致的了解了一下。
1 |
|
这里要注意的是 线程函数的类型 必须是void (func)(void ) , 然后第四个参数是传递给func的参数,这里可以看到,只能传一个void *类型的
指针给线程函数,当然,不传就是NULL.
1 | //顺手写一个小demo |
上面这个展示了如何传单个参数,如果想传递多个参数的话就需要用到结构体了,
有了上面的demo后,传结构体其实也比较简单了, 就用结构体指针指一下就OK了。以上是关于create的问题 。下面讲一下如何判断线程是否还活着。
1 | pthread_kill(pthread_t id , int sig) ; |
当sig==0 时, 用于测试线程是否还活着, 另外 当返回是0的时候线程还是活着的, 当线程返回ESRCH 表示线程不存在,EINVAL则说明sig不合法。