我使用共享内存使用shmget
函数存储一些数据。然后我使用shmat
附加它并保存数据。下次我附加它时,程序崩溃了。这条线的可能性有哪些:
if((smemPtr = (int*)shmat(sMemId,NULL,0)) != (int *) -1)
崩溃?我需要知道这条线路崩溃的情况。 sMemId
有一个值。
答案 0 :(得分:0)
(int*) (...) != (int *) -1
指向另一个对象的指针是无符号值。在这段代码中,我看到C样式转换签名(负)值为unsigned。结果取决于编译器,平台和一般情况 - undefined。