golang檔案處理函數openfile與linux系統的檔案函數的耦合

來源:互聯網
上載者:User

golang運行最理想的環境是linux系統中,編譯速度和執行速度都比較快,本文是關於golang中的檔案操作函數

在golang標準庫中os包提供了不依賴平台的借口,但是使用的風格是unix風格的。

函數Openfile是一個可以指定選項(與linux中的檔案操作函數的常數是相同的,如O_APPEND),指定的模式如0666等等,開啟指定的檔案

下面是openfile函數的原型golang代碼

1 func     OpenFile(name string, flag int,perm FileMode)(file *File,err error)

其中name是檔案的檔案名稱,如果不是當前運行程式的路徑下,需要加上路徑,flag是檔案的處理的參數,是int類型的不同系統具體是多少可能不同,但是作用是相同的。給出通常會用到的幾個常數

 1 O_RDONLY:  唯讀 2 O_WRONLY:  唯寫 3 O_RDWR: 讀寫 4 O_APPEND: 追加 5 O_CREATE: 不存在,則建立 6 O_EXCL:如果檔案存在,且標定了O_CREATE的話,則產生一個錯誤 7 O_TRUNG:如果檔案存在,且它成功地被開啟為唯寫或讀寫方式,將其長度裁剪唯一。(覆蓋) 8 O_NOCTTY如果檔案名稱代表一個終端裝置,則不把該裝置設為調用進程的控制裝置: 9 O_NONBLOCK:如果檔案名稱代表一個FIFO,或一個塊裝置,字元裝置檔案,則在以後的檔案及I/O操作中置為非阻塞模式10 O_SYNC:當進行一系列寫操作時,每次都要等待上次的I/O操作完成再進行。

雖然我們以字元的形式來標識,但是他們實質上是int類型的資料。同樣在Filemode中代表檔案在linux中的許可權

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.