gpt4 book ai didi

posix - 针对 pthread 函数 pthread_condattr_setclock 链接 NPTL

转载 作者:行者123 更新时间:2023-12-02 04:17:06 26 4
gpt4 key购买 nike

我编写了一些在条件变量上使用定时等待的 pthread 代码,但为了确保相对等待,我使用 pthread_condattr_setclock() 将 condvar 的时钟类型设置为 CLOCK_MONOTONIC。

为了在 RHEL4 上编译和链接 pthread_condattr_setclock(),我必须将 -I/usr/include/nptl 和 -L/usr/lib/nptl 添加到我的 gcc 命令行。我的理解是 2.6 内核(RHEL4 有)默认使用 NPTL pthread 实现,那么为什么我需要明确指定这些路径才能使用这个函数呢?

只是这个函数需要我这样做:如果我忽略它,一切都可以编译和链接,而无需指定额外的路径(尽管代码的行为是不正确的)。

最佳答案

据我所知,/usr/include 和/usr/lib 中的 pthread header 和库分别是旧的 LinuxThreads 实现,我的假设是它们是为了向后兼容而存在的(即您应该针对旧接口(interface)构建) 但在运行时使用 NPTL 实现(它的接口(interface)是 LinuxThreads 接口(interface)的超集)。

因此,您只能使用新的 NPTL 接口(interface)(即,如果您需要一些额外的功能),如果您知道自己需要它,并且至关重要的是,您知道 NPTL 接口(interface)将在运行时可用。

关于posix - 针对 pthread 函数 pthread_condattr_setclock 链接 NPTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2356448/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com