溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

1.linux中的文件操作

發(fā)布時(shí)間:2020-03-02 14:39:48 來源:網(wǎng)絡(luò) 閱讀:121 作者:tresordie 欄目:系統(tǒng)運(yùn)維

1.linux中的文件操作

1. Windows中的文件操作

  1. 在windows中,我們操作一個(gè)文件會(huì)存在以下的情況

    1.1 首先我們會(huì)明確我們要操作的文件所在的目錄或路徑
    1.2 進(jìn)入相應(yīng)的路徑中, 操作特定文件時(shí)先會(huì)檢查文件是否存在
    1.3 文件不存在時(shí),創(chuàng)建文件
    1.4 文件存在時(shí),可以打開文件進(jìn)行相應(yīng)的操作
    1.5 文件操作完成后,關(guān)閉文件

2. linux中的文件操作又如何呢?

  1. linux中的文件操作和windows系統(tǒng)中有哪些相同點(diǎn)及區(qū)別呢?

    1.1 操作的方式和上面的windows是一樣的
    1.2 linux中文件操作需要注意點(diǎn):

    1. 基本的操作函數(shù)(open, close, read, write, lseek)
    2. 文件以何種方式打開(只讀,只寫,可讀可寫)
    3. 當(dāng)需要打開一個(gè)文件進(jìn)行寫操作時(shí),如果此文件中有內(nèi)容存在,那么寫入的內(nèi)容是以追加的方式還是覆蓋的方式寫入呢?這就涉及到了O_APPEND和O_TRUNC
    4. 當(dāng)要操作的文件不存在時(shí),如何創(chuàng)建?或者當(dāng)操作的文件存在時(shí),是否能夠判斷文件存在?這就涉及到O_CREAT(無論文件是否存在都創(chuàng)建一個(gè)文件)及O_EXECL(當(dāng)需要?jiǎng)?chuàng)建文件時(shí),如果文件存在就報(bào)錯(cuò))
    5. 文件在操作時(shí)如果出錯(cuò),如何退出當(dāng)前進(jìn)程?使用exit, _exit, _Exit都可以實(shí)現(xiàn)退出當(dāng)前進(jìn)程.
    6. 還有兩個(gè)flags, O_NONBLOCK及O_SYNC,

      6.1 O_NONBLOCK用于設(shè)備文件的非阻塞式訪問(當(dāng)有過個(gè)程序需要訪問設(shè)備時(shí),如果當(dāng)前設(shè)備被一個(gè)程序調(diào)用,則其它程序進(jìn)入非阻塞方式訪問)
      6.2 O_SYNC,由于linux操作系統(tǒng)提供的文件操作的API給應(yīng)用程序調(diào)用對(duì)文件進(jìn)行讀寫,但不是應(yīng)用程序每寫入一個(gè)字節(jié)或者少量字符就直接寫入到塊設(shè)備硬件中的(iNand,SD卡),而是在close文件描述符時(shí)才寫入到硬件儲(chǔ)存設(shè)備中的. 如果在write的flag中加入O_SYNC就可以直接寫入硬件中.

3. linux中文件讀取時(shí),除了讀取了全部內(nèi)容外,還會(huì)多讀取一個(gè)'\n'

1.linux中的文件操作

4. linux中對(duì)文件進(jìn)行寫操作時(shí),如果在打開文件時(shí)使用O_TRUNC,則會(huì)將文件中的內(nèi)容全部清空后,再寫入內(nèi)容;如果在打開文件時(shí)使用了O_APPEND, 則會(huì)將寫入的內(nèi)容追加到原有內(nèi)容的后面(注意:是先換行后再追加新的內(nèi)容)

5. linux中在打開文件寫入內(nèi)容后且在文件關(guān)閉前,調(diào)用read函數(shù)去讀取寫入內(nèi)容后的文件,發(fā)現(xiàn)讀出的內(nèi)容和寫入的內(nèi)容不匹配,參考以下鏈接內(nèi)容

解決linux下寫一個(gè)文件之后立馬讀,讀出亂碼或者空白的問題

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI