c - sem_t的结构和信号量的实现

标签 c linux posix semaphore

在 C 编程语言中,为什么我们需要特殊的 sem_t 类型来定义信号量?那不是一个整数吗?sem_t是如何定义的? sem_post 和 sem_wait 函数是如何实现的? 编辑:像 GNU C 库这样的示例实现会很棒。

最佳答案

信号量是操作系统内核管理的对象,因此 sem_t 将是特定于操作系统的,信号/等待调用也是如此,因为它们也必须调用操作系统内核。

通常,信号量是通过单位计数和任何等待线程的队列来实现的。

关于c - sem_t的结构和信号量的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16084684/

相关文章:

c++ - 分配大量内存会出错?为什么?

c - 字符串递归

linux - 自动启动服务失败

php - Linux sed 命令替换字符串不起作用

perl - 在 Perl 中使用 POSIX ceil() 出现意外结果

c - 用 c 舍入

C - 如何在排序时不更改 int 数组的值

linux - bash 中的 dir 路径谜题?

无法在 MacOS 上从 shm_open 写入 fd

c++ - 如何清除 POSIX 消息队列?