0

Debian 安定版を使用しています。C++ でマルチスレッド アプリケーションをコーディングし、g++コンパイラを使用-lpthread argumentしてコンパイルしていました。

しかし、関数は機能しpthread_getthreadid_np()ません:

エラー: 'pthread_getthreadid_np' はこのスコープで宣言されていません

このエラーの原因は何ですか?

4

1 に答える 1

3

_npは「移植性がない」(または「Posix でない」) ことを意味し、すべてのプラットフォームで利用できるわけではないことを意味します。この関数は、呼び出しスレッドのプラットフォーム固有の整数 ID を取得するために、BSD に固有のようです。Linux には存在しません。

pthread_t使用目的に応じて、ポータブルpthread_self関数 (Linux では整数型) によって返されるハンドル、または Linux 固有のgettidシステム コールによって返される数値スレッド IDを使用できる場合と使用できない場合があります。または、何をしているのかを再考して、スレッド ID を処理する必要がないようにします。

于 2013-11-13T13:26:34.453 に答える