0
我在Minix寫了一個信號量的實現,我不確定一件事情。全局變量及其在文件C之間的文件範圍
如果呼叫從一個首標包括一個功能和功能是使用一個全局數組,該數組:
- 同樣對於該調用該函數的所有進程?
- 對於調用該函數的每個進程都有所不同?
- 每次調用該函數都會有所不同嗎?
我在Minix寫了一個信號量的實現,我不確定一件事情。全局變量及其在文件C之間的文件範圍
如果呼叫從一個首標包括一個功能和功能是使用一個全局數組,該數組:
我不確定在C99標準中提及process的概念。假設你的C實現是在Linux上,或者至少是一個POSIX實現。
然後,每個進程都有自己virtual address space和全局變量都坐在那(這被懶洋洋地由fork(2)複製,與mmap(2) & munmap
& mprotect(2)等等,被execve(2)代替....改變)地址空間。
因此,您的選擇2是正確的(至少在Linux上,可能在Minix上,因爲它符合POSIX和類Unix標準...)。
順便說一句,它將與static
陣列一樣。
參見參考文獻和鏈接here。
謝謝,這似乎合乎邏輯。任何關於如何在fork或exec時工作的想法?分叉進程是否會繼承數組? –
@m_highlanderish:C不知道porocesses。這已經回答你的問題。請注意,它是更廣泛的問題「什麼是過程」的一部分。你應該讀一讀。 – Olaf