golang文件處理函數openfile與linux系統的文件函數的耦合

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

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

函數Openfile是一個能夠指定選項(與linux中的文件操做函數的常數是相同的,如O_APPEND),指定的模式如0666等等,打開指定的文件函數

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

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

其中name是文件的文件名,若是不是當前運行程序的路徑下,須要加上路徑,flag是文件的處理的參數,是int類型的不一樣系統具體是多少可能不一樣,可是做用是相同的。給出一般會用到的幾個常數unix

 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中的權限code

相關文章
相關標籤/搜索