看板 LinuxDev 關於我們 聯絡資訊
※ 引述《cty222 (縱裕)》之銘言: : 小弟寫了一支關於 share memory 的程式 : 裡面加入了類似hand shake的機制 : 一開始兩支C code compiler 工作正常 : 後來其中一支C code改成用QT compiler就不正常了 : 節取問題code如下 : *share 是共享記憶體 : C code QT code : 1. *share = 0 ; *share=0; : 2. while(*share==1); while(*share!=2){ : *share = 1 ; : sleep(1); <-----問題點 : } : 3. *share=2; : 用sleep(1)是可以工作正常 : 可是我原本是用for(i=0;i<100;i++); 的方式去等 : 也試過不等(什麼都不加) : 但C_code那邊加入printf去看 *share 一直是 0 : (第三行不會被執行) : 雖然之後QT應該會用Dbus做 : 但還是想了解這是什麼原因 : 這是用shmget() + shmat() 的方式實作 : 希望各位前輩可以幫忙解惑... 我想幫你,但是我得先弄董你寫的那個..虛擬碼,sorry 有關兩個行程要 hand shake , 其實用一個信號/mutex 來進行同步會比較好. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.9.134.158