0
我想在Linux中執行一個C程序,並且出現錯誤信息:「P_Semaphore:無效參數錯誤號:22,」有人可以幫助Linux中的信號量錯誤 - :無效的參數錯誤否:22(EINVAL)
Int P_Semaphore(int i_sem_id)
{
int i_code_returns;
struct sembuf t_semop;
#ifdef TRACE
Debug(N_DEBUG_8, "P_Semaphore", "Entree, i_sem_id=%d<<<<<<\n", i_sem_id);
#endif
t_semop.sem_num = 0;
t_semop.sem_op = -1;
t_semop.sem_flg = 0;
do
{
i_code_retour = semop(i_sem_id, &t_semop, 0);
} while ((i_code_returns == KO) && (errno == EINTR));
if (i_code_retour == KO)
{
printf("%s(%d):Error semaphore making attempt %d,errno = %d\n", M_HEADER, i_sem_id, errno);
perror("P_Semaphore");
}
我查了一下,信號燈設置存在,也正值 – Yogarajan
nsops是對semop調用的第三個參數。它是零,它應該是1. – rghome
不,它不是我檢查的問題,我得到了printf語句中的錯誤「printf(」%s(%d):錯誤信號量試圖%d,errno =%d \ n 「,M_HEADER,i_sem_id,errno);」 – Yogarajan