Как проверить, доступна ли pthread_setname_np () на моей платформе - PullRequest
0 голосов
/ 22 марта 2019

Некоторые реализации потоков POSIX определяют pthread_setname_np(), чтобы установить отображаемое имя для потока.Тем не менее, это, кажется, нестандартное расширение.

Как я могу проверить (с помощью директив препроцессора), доступна ли функция на платформе, для которой я строю, и пропустить вызов, если это не так?

1 Ответ

0 голосов
/ 23 марта 2019

Вы не можете проверить существование функции с препроцессором.

Именно поэтому люди используют такие инструменты конфигурации сборки, как autoconf . Идея состоит в том, что у вас есть среда сборки, определяющая макрос препроцессора, такой как HAVE_PTHREAD_SETNAME_NP, только если такая функция существует, тогда ваш код может просто протестировать этот макрос с помощью #ifdef.

...