linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?
生活随笔
收集整理的這篇文章主要介紹了
linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Linux下兩個進程可以同時打開同一個文件嗎?返回的文件描述符一樣嗎?
一:結論
1.兩個進程中分別產生生成兩個獨立的fd
2.兩個進程可以任意對文件進行讀寫操作,操作系統并不保證寫的原子性
3.進程可以通過系統調用對文件加鎖,從而實現對文件內容的保護
4.
任何一個進程刪除該文件時,另外一個進程不會立即出現讀寫失敗
5.兩個進程可以分別讀取文件的不同部分而不會相互影響
6.一個進程對文件長度和內容的修改另外一個進程可以立即感知
二:文件描述符與打開文件的關系?
內核中,對應于每個進程都有一個文件描述符表,表示這個進程打開的所有文件。文件描述表中每一項都是一個指針,指向一個用 于描述打開的文件的數據塊———file對象,file對象中描述了文件的打開模式,讀寫位置等重要信息,當進程打開一個文件時,內核就會創建一個新的file對象。需要注意的是,file對象不是專屬于某個進程的,不同進程的文件描述符表中的指針可以指向相同的file對象,從而共享這個打開的文件。file對象有引用計數,記錄了引用這個對象的文件描述符個數,只有當引用計數為0時,內核才銷毀file對象,因此某個進程關閉文件,不影響與之共享同一個file對象的進程。
總結
以上是生活随笔為你收集整理的linux下两个进程可以同时打开同一个文件吗?返回的文件描述符一样吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多进程同时写一个文件会怎样?分别用wri
- 下一篇: CPU中的主要寄存器:有六类寄存器:指令