0
工作時,我是新來的共享內存和香港專業教育學院想出了下面的代碼:「壞的系統調用」錯誤與共享內存
int main()
{
int perm=S_IRWXU|S_IRWXG|S_IRWXO;
int fd=shmget(IPC_PRIVATE,1024,IPC_CREAT|perm);
if(fd<0)
{
printf("error");
_exit(0);
}
int* sum=(int*)shmat(fd,0,0);
if(*sum==1)
{
printf("error\n");
_exit(0);
}
*sum=0;
printf("asjjsad=%d",*sum);
return 0;
}
當我運行此我得到壞系統調用。
怎麼了?
我想分配總和爲0,並有一個子進程計算一個值,說sum1。然後我必須嘗試添加總和1。
你如何做到這一點?
我編譯並運行你的代碼沒有任何錯誤,結果是正確的。 – richselian 2013-05-02 12:17:39
哪條線給你「*壞系統調用*」? – alk 2013-05-02 14:33:15
它只是說不好的系統調用。 – 2013-05-02 14:37:49