0

我正在尝试将 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;

我得到的错误如下:

错误:请求转换为非标量类型

4

1 回答 1

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”中进行转换也是不正确的。

于 2012-09-24T21:04:48.457 回答