[理工] [OS] 父子process的共享變數

看板Grad-ProbAsk作者 (Michael)時間9年前 (2015/03/11 18:14), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/2 (看更多)
int value = 0; void *runner(void *param); int main(in argc, char *argv[]) { int pid; phread_t tid; pthread_arrt_t attr; pid = fork() if(pid == 0){//child pthread_attr_init(&attr); pthread_create(&tid,&attr,runner,NULL); pthread_join(tid,NULL); printf("%d\n",value); //line C }else if(pid>0){ //parent wait(NULL); printf("%d\n",value);//line P } } void *runner(void *param) { value = 5; pthread_exit(0); } -------------------------------------------------- 這題答案line C是5 line P是0 請問有可能出現line P=5的答案嗎? fork()以後應該是把value的值複製一份到子process的記憶體位置吧? 所以子process不管如何更改自己的value值應該都無法影響父process的 value 我這樣的觀念是正確的嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.55.239 ※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1426068880.A.62D.html

03/12 00:52, , 1F
y
03/12 00:52, 1F
文章代碼(AID): #1L01MGOj (Grad-ProbAsk)
文章代碼(AID): #1L01MGOj (Grad-ProbAsk)