release.c

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

C
16
字号
#include "shm.h"
void release(void) { /* Detach shared memory if it is attached */
    union semun semarg;
    if ( shmp != 0 && shmp != (char *)(-1) )
        if ( shmdt(shmp) == -1 )
            perror("shmdt()");
    
    if ( shmid != -1 )
        if ( shmctl(shmid,IPC_RMID,0) == -1 )  /* Destroy shared memory */
            perror("shmctl(IPC_RMID)");
        
    if ( semid != -1 )
        if ( semctl(semid,0,IPC_RMID,semarg) == -1 ) /* Destroy semaphore */
            perror("semctl(IPC_RMID)");
}

⌨️ 快捷键说明

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