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 に答える