转:fopen与open可以转换吗
生活随笔
收集整理的這篇文章主要介紹了
转:fopen与open可以转换吗
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
絕對(duì)不可以。fopen是C運(yùn)行庫級(jí)別的函數(shù),而open是system call的wrapper routine。fopen返回FILE *的指針,這個(gè)結(jié)構(gòu)本身維護(hù)著一些關(guān)于這個(gè)文件的信息,而open返回的是這個(gè)被打開的文件的id,這個(gè)id是內(nèi)核來維護(hù)的。這兩個(gè)東西根本不是一碼事, 其中FILE結(jié)構(gòu)倒是記錄著這個(gè)文件的id。除此之外,fopen這個(gè)級(jí)別的文件操作函數(shù)(比如fread、fwrite)在用戶態(tài)又實(shí)現(xiàn)了一級(jí) cache,比如說你用fwrite向文件里寫一個(gè)字節(jié),一般來講它不會(huì)立刻調(diào)用write將該操作提交給kernel,而是積累到一定程度再一起寫。所 以這兩個(gè)函數(shù)是不同級(jí)別的,不能混用。
轉(zhuǎn)載于:https://www.cnblogs.com/yfz0/p/5257554.html
總結(jié)
以上是生活随笔為你收集整理的转:fopen与open可以转换吗的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序--显示图形效果
- 下一篇: linux备份用户权限