semop.c

来自「中科院徐志伟老师一书《操作系统 原理·技术与编程》的源代码和习题接」· C语言 代码 · 共 17 行

C
17
字号
#include "shm.h"
void lockshm(int sem,int bvar) { /* Peform semaphore wait/notifies */
    int z;                          /* Return status */
    static struct sembuf sops = { 0, -1, 0 };
   
    sops.sem_num = sem;            /* Select semaphore */
    sops.sem_op = bvar ? -1 : 1;   /* Wait / Notify */
    do  {
        z = semop(semid,&sops,1);   /* Semaphore operation */
    } while ( z == -1 && errno == EINTR );

    if ( z == -1 ) {
        perror("semop()");         
        exit(13);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?