【发布时间】:2023-02-05 08:07:50
【问题描述】:
显然较新版本的 ubuntu(22.04 以上)没有 Pthreads 函数 pthread_yield 但它们包含 sched_yield
所以我的解决方案是在我的项目中包含一个具有以下功能的 .c 文件:
#include <sched.h>
int pthread_yield(void) { return sched_yield(); }
这解决了我在 ubuntu 22.04 下的问题,但是存在 pthread_yield 的其他版本呢?
我想仅在 pthreads 中不存在时才定义此函数,我该怎么做?
【问题讨论】:
-
我想仅在 pthreads 中不存在时才定义此函数,我该怎么做?RTFM:
#define _GNU_SOURCE /* See feature_test_macros(7) */ -
你能详细说明一下吗?这是否意味着如果存在 _GNU_SOURCE,则不需要 fake 函数? _GNU_SOURCE 的存在是不是有点太笼统了?