我试图将ssl结构传递给一个线程,但使用下面的代码无法实现相同的效果,
if(SSL_set_fd(ssl, client_s)<0)
printf("\n error in assigning socket to SSL:");
else
printf("\n The socket has been assigned to SSL Structure");
pthread_create ( /* Create a child thread */
&threads, /* Thread ID (system assigned) */
&attr, /* Default thread attributes */
my_thread, /* Thread routine */
&ssl);
}
void *my_thread(void * arg)
{
SSL *ssl1;
ssl1 = *(SSL)arg;
int i=1,err,fh,ret;//i
unsigned int buf_len;
我得到的错误如下:
错误:转换为请求的非标量类型
答案 0 :(得分:0)
据我所知,你总是得到一个指向SSL结构的指针,所以这是你的更正代码:
pthread_create ( /* Create a child thread */
&threads, /* Thread ID (system assigned) */
&attr, /* Default thread attributes */
my_thread, /* Thread routine */
ssl);
在你的线程函数中:
void *my_thread(void * arg)
{
SSL *ssl1;
ssl1 = (SSL*)arg;
你试图在'pthread_create'调用中传递“指向指针”,而在'my_thread'内部投射也是不正确的。