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