第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

子線程輸出語句輸出兩遍

子線程輸出語句輸出兩遍

代碼如下,使用了共享內(nèi)存,但是子線程的代碼執(zhí)行了兩次,不明白為什么#include?<stdio.h> #include?<sys/types.h> #include?<unistd.h> #include?<sys/ipc.h> #include?<sys/shm.h> #include?<sys/wait.h> #include?<stdlib.h> //#include?<sys/signal.h> //#include?<stdlib.h> int?main() { ????key_t?key; ????key?=?ftok("/tmp",?55); ????int?size?=?getpagesize(); ????int?shmid?=?shmget(key,?size,?IPC_CREAT|00777); ????if(shmid?<?0) ????{ ????????printf("shmget?error\n"); ????????return?-1; ????} ????int?*p?=?(int?*)shmat(shmid,?NULL,?0); ????*p?=?1; ????printf("\nopration?*p=1\nthis?is?father:?*p=1=%d\n",?*p); ????pid_t?pid?=?fork(); ????if(pid?==?0); ????{ ????????int?*sp?=?(int?*)shmat(shmid,?NULL,?0); ????????*sp?=?5; ????????printf("\nopration?*sp=5\nthis?is?son:?*sp=5=%d\n",?*sp); ????????printf("this?is?son:?*p=1=%d\n",?*p); ????} ????wait(NULL); ????return?0; }輸出結(jié)果如下:opration?*p=1 this?is?father:?*p=1=1 opration?*sp=5 this?is?son:?*sp=5=5 this?is?son:?*p=1=5 opration?*sp=5 this?is?son:?*sp=5=5 this?is?son:?*p=1=5
查看完整描述

2 回答

?
你想象不到我有多執(zhí)著

TA貢獻1條經(jīng)驗 獲得超0個贊

問題就是出在

if(pid?==?0);

多了個分號,去掉分號就正常了,犯了個低級錯誤

查看完整回答
反對 回復 2017-10-18
?
遙不可及不放棄

TA貢獻15條經(jīng)驗 獲得超5個贊

子進程創(chuàng)建會復制父進程的所有東西,所以if上面那個輸出會輸出,把上面那個輸出用父進程判斷條件(大于0)擴起來,就不會了

查看完整回答
反對 回復 2017-08-16
  • 你想象不到我有多執(zhí)著
    你想象不到我有多執(zhí)著
    可能是我沒有表達清楚,我現(xiàn)在才發(fā)現(xiàn)問題出在哪了,問題出在if(pid == 0);多了個分號,不過也很感謝你的回答
  • 2 回答
  • 0 關(guān)注
  • 1620 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號