【问题标题】:Posix Semaphores source code location in linuxPosix Semaphores 源代码在 linux 中的位置
【发布时间】:2015-09-02 18:00:31
【问题描述】:

我已经开始学习操作系统中的信号量概念。 我在 linux 中使用 POSIX 信号量。我使用 sem_init()、sem_wait() 和 sem_post() 来初始化、递减和递增信号量变量。

我在 semaphore.h 文件中看到了函数声明。

但我找不到上述这些函数的源代码。我浏览了一些内核源文件,但找不到它们。从哪里可以得到这些源代码文件?

我使用的是 linux 3.6.11-4 内核。

谢谢。

【问题讨论】:

  • 查看 glibc 源代码:它实现了 POSIX C 接口,并且只在必要时将系统调用传递给内核。例如,sem_init.c

标签: c linux operating-system kernel


【解决方案1】:

与旧的"SysV IPC" 信号量(semctlsemop 等)不同,POSIX 信号量 API 不是由内核直接实现的。相反,C 库在 futex 通用同步原语之上实现它。

您要查找的代码位于 GNU libc 源代码树的 nptl 子目录中。您可能还需要在sysdeps 中四处挖掘才能找到所有内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多