學習筆記:在windows和linux下寫檔案的些許不同
以下程式碼在跨平臺時存在的一個小陷阱,windows下可以正常跑,linux下fp.Write(b)會報錯“bad file descriptor”
package main
import (
"log"
"os"
)
func main() {
fp, err := os.OpenFile("1.log", os.O_APPEND|os.O_CREATE, 0666)
if err != nil {
return
}
defer fp.Close()
b := []byte("1234567890")
n, err := fp.Write(b)
if err != nil {
log.Println("error:", err)
}
log.Println("n = ", n)
}
linux也要正常執行得把os.OpenFile(fileName, os.O_APPEND|os.O_CREATE, 0666)改成 os.OpenFile(fileName, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666)或者os.OpenFile(fileName, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
因為我是根據C的寫檔案的方式來寫的,以為os.O_APPEND|os.O_CREATE作為C的open(filename, "a"),然而實際上os.O_APPEND|os.O_CREATE|os.O_WRONLY才是C的open(filename, "a")
和我一樣從C/C++轉過來的gopher小夥伴千萬注意啊
相關文章
- Linux 檔案許可權 學習筆記Linux筆記
- Linux學習筆記 檔案讀寫小細節Linux筆記
- 【C#學習筆記】寫檔案C#筆記
- linux磁碟和檔案系統的學習筆記Linux筆記
- C++學習筆記----讀寫檔案C++筆記
- Linux 學習筆記--使用者及檔案許可權管理Linux筆記
- Linux檔案型別(學習筆記六)Linux型別筆記
- [學習筆記]在不同專案中切換Node.js版本筆記Node.js
- Linux使用者、使用者組、檔案許可權學習筆記Linux筆記
- linux學習筆記---一些命令學習Linux筆記
- Linux學習筆記:rm刪除檔案和資料夾Linux筆記
- Linux學習筆記——如何使用echo指令向檔案寫入內容Linux筆記
- Xshell在Windows和Linux間檔案的上傳和下載WindowsLinux
- Python 3 學習筆記之——鍵盤輸入和讀寫檔案Python筆記
- VC++學習筆記---配置檔案(一) ini檔案和propritiesC++筆記
- Laravel 學習筆記一: 專案框架和配置檔案Laravel筆記框架
- Java學習筆記之檔案Java筆記
- Linux 學習筆記--檔案打包與解壓縮Linux筆記
- 4、Linux入門學習筆記 檔案操作命令Linux筆記
- Linux學習筆記——例說makefile 多個檔案Linux筆記
- .NET 6學習筆記(1)——通過FileStream實現不同程式對單一檔案的同時讀寫筆記
- Linux 筆記分享八:檔案許可權的設定Linux筆記
- 寫得蠻好的linux學習筆記(轉)Linux筆記
- DVWA-檔案包含學習筆記筆記
- 【C#學習筆記】讀檔案C#筆記
- 學習筆記:robots.txt檔案筆記
- 學習筆記 使用者和許可權筆記
- Linux學習筆記——例說makefile 單個C檔案Linux筆記
- Linux下的makefile編寫 ——陳皓《跟我一起寫Makefile》學習筆記(二)Linux筆記
- Linux 學習筆記--目錄結構及檔案基本操作Linux筆記
- Linux 學習筆記--環境變數與檔案查詢Linux筆記變數
- Linux學習筆記--rm命令(刪除檔案或目錄)Linux筆記
- Linux下的檔案許可權和使用者身份Linux
- 學習筆記 物件許可權筆記物件
- 忽略某些檔案 —— Git 學習筆記 05Git筆記
- OS學習筆記六:檔案系統筆記
- 【C#學習筆記】儲存檔案C#筆記
- 【C#學習筆記】播放wav檔案C#筆記