我在 main 函式中創建并初始化了 System V 信號量semget(),semctl() 但該semop()函式在不同的函式中被呼叫。我只是將信號量的 id 作為引數傳遞給該函式。它看起來像這樣:
int manageProcesses(int* data, int* numProcesses, int semId, int mutex, int time)
{
semop(mutex, &semwait, 1);
...
}
這是否有效或應該在與andsemop()相同的函式中呼叫?semget()semctl()
uj5u.com熱心網友回復:
這是否有效或應該在與and
semop()相同的函式中呼叫?semget()semctl()
從 獲取的信號量集的 id 是semget()具有內核持久性的物件(信號量集)的行程范圍句柄。一旦你得到一個,你可以在程式中的任何地方使用它semctl()和/或semop(),直到并且除非你通過洗掉信號量集semctl(..., IPC_RMID),或者其他一些程序洗掉它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470608.html
標籤:C
