0

我正在使用 Debian 稳定版。我正在用 C++ 编写一个多线程应用程序,并使用g++编译器-lpthread argument进行编译。

但该功能pthread_getthreadid_np()不起作用:

错误:未在此范围内声明“pthread_getthreadid_np”

是什么导致了这个错误?

4

1 回答 1

3

_np表示“不可移植”(或“非 Posix”),这意味着它并非在所有平台上都可用。这个函数似乎是特定于 BSD 的,用于为调用线程获取特定于平台的整数 ID。它在 Linux 上不存在。

根据它的用途,您可能会也可能不会使用可pthread_t移植pthread_self函数返回的句柄(在 Linux 上是整数类型),或特定于 Linux 的gettid系统调用返回的数字线程 ID。或者,重新考虑您正在做的任何事情,这样您就不需要处理线程标识。

于 2013-11-13T13:26:34.453 回答