0

オペレーティングシステム:Ubuntu 11.04 \n \l
以下のプログラムpthreadで新しいスレッドを作成していますが、登録時に失敗します。

#include<pthread.h>
#include <pjlib.h>
#include <pjlib-util.h>

void serila_port_handler(void);

int main()
{
pthread_t trd_hndler;
    if(pthread_create(&trd_hndler,NULL,serila_port_handler,NULL))
    {
        printf("ERROR while initializing serial port_thread \n");
    }
    pthread_join(trd_hndler,NULL);
}
void serila_port_handler(void)
{
    int ret,rc;
        pj_thread_desc ptd;
        pj_thread_t *thread =0;
        bzero(&ptd, sizeof(pj_thread_desc));
        if ( (rc = pj_thread_register("serialportthread",ptd, &thread)) != PJ_SUCCESS) {
                printf("Error in pj_thread_register Return Val.: %d\n",rc);
                exit(1);
        }
        printf("pj_thread_register Success!");
        sleep(10);

}

出力:

Error in pj_thread_register Return Val.: 120022
4

1 に答える 1

3

pj-libでanytingを使用する前に、pj_init ()を呼び出す必要があります。

それでも問題が発生する場合は、pj-libをデバッグする必要があります。これには、エラーコード120022の意味の理解が含まれ、pj_thread_registerのソースコードを読み取って何が起こっているのかを理解します。

于 2013-01-03T08:05:03.383 に答える