小编Gam*_*irl的帖子

检查共享内存是否存在以及是否可以访问它

我有另一个program1,我创建一个共享内存,我有一个program2,我想检查共享内存是否已创建,如果没有,然后打印错误,什么也不做,如果它已经创建然后访问它.如果之前已经创建了共享内存,那么它可以正常工作,我可以访问它,但我遇到的问题是,如果没有创建共享内存,那么代替什么都不做并打印错误,program2创建共享内存,我没有我不希望这种情况发生.任何帮助将不胜感激,请询问任何可能有用的信息,谢谢!

void main(){

int sm_id;
sm_id = shmget(9000, MAX_USERS * sizeof(User), IPC_CREAT | IPC_EXCL | 0666);
if(sm_id>0){
    perror("Shared memory has not been created yet");
    exit(1);
}else{
    sm_id = shmget(9000, MAX_USERS * sizeof(User), IPC_CREAT | 0666);
    list = (User *)shmat(sm_id,0,0);
    exit_on_null(list, "Exit on null(error attach)");
}

}
Run Code Online (Sandbox Code Playgroud)

c shared-memory

1
推荐指数
1
解决办法
3105
查看次数

标签 统计

c ×1

shared-memory ×1