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