信号量:为什么在 sem.h 中定义了 sembuf 而没有定义 semun?
Semaphore: why is sembuf defined in sem.h but semun is not?
我一直在试验 linux IPC this tutorial,并提出了以下问题。
在示例代码semdemo.c中,semun
是程序员明确定义的,而sembuf
是在头文件中预定义的,在我的机器/usr/include/x86_64-linux-gnu/sys/sem.h
上。为什么我们不把 semun
的定义也移到头文件中呢?
如果这样做,这将破坏现有程序,因为 C 语言不允许双重定义类型。
缺少的类型定义是 AT&T 的遗产,无法更改。
参见 semctl()
的 SunOS 手册页:
http://schillix.sourceforge.net/man/man2/semctl.2.html
源自 AT&T 手册页。
我一直在试验 linux IPC this tutorial,并提出了以下问题。
在示例代码semdemo.c中,semun
是程序员明确定义的,而sembuf
是在头文件中预定义的,在我的机器/usr/include/x86_64-linux-gnu/sys/sem.h
上。为什么我们不把 semun
的定义也移到头文件中呢?
如果这样做,这将破坏现有程序,因为 C 语言不允许双重定义类型。
缺少的类型定义是 AT&T 的遗产,无法更改。
参见 semctl()
的 SunOS 手册页:
http://schillix.sourceforge.net/man/man2/semctl.2.html
源自 AT&T 手册页。