我有另一个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)