semflg semget 函数的值
semflg Value of semget Function
通常,位于sys/types.h 文件中的一些常量标志值作为第三个参数传递给semget()
函数。但是,为项目提供给我们的一段代码包含这样一个 semget()
函数调用:
sem_id = semget(SEMKEY, 1, 0) // accessing pre-defined semaphore
semid为全局变量,SEMKEY为常量
将零传递给 semflg 值是什么意思?我们可以说在访问之前定义的信号量时,我们将 semflg 参数设置为零吗?
不完全是因为可能会设置其他标志,即使 IPC_CREAT
未设置但也没有用。 POSIX 只是说(关于开幕):
A semaphore identifier with its associated semid_ds data structure and
its associated set of nsems semaphores (see ) is created
for key if one of the following is true:
The argument key is equal to IPC_PRIVATE.
The argument key does not already have a semaphore identifier
associated with it and (semflg & IPC_CREAT) is non-zero.
所以,当然,semflg=0 意味着 没有创建 。但是 no creation 并不意味着 semflg=0.
通常,位于sys/types.h 文件中的一些常量标志值作为第三个参数传递给semget()
函数。但是,为项目提供给我们的一段代码包含这样一个 semget()
函数调用:
sem_id = semget(SEMKEY, 1, 0) // accessing pre-defined semaphore
semid为全局变量,SEMKEY为常量
将零传递给 semflg 值是什么意思?我们可以说在访问之前定义的信号量时,我们将 semflg 参数设置为零吗?
不完全是因为可能会设置其他标志,即使 IPC_CREAT
未设置但也没有用。 POSIX 只是说(关于开幕):
A semaphore identifier with its associated semid_ds data structure and its associated set of nsems semaphores (see ) is created for key if one of the following is true:
The argument key is equal to IPC_PRIVATE.
The argument key does not already have a semaphore identifier associated with it and (semflg & IPC_CREAT) is non-zero.
所以,当然,semflg=0 意味着 没有创建 。但是 no creation 并不意味着 semflg=0.