亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Golang > 正文

Golang的os標(biāo)準(zhǔn)庫中常用函數(shù)的整理介紹

2020-04-01 19:13:28
字體:
供稿:網(wǎng)友
這篇文章主要介紹了Go語言的os標(biāo)準(zhǔn)庫中常用函數(shù),主要用來實現(xiàn)與操作系統(tǒng)的交互功能,需要的朋友可以參考下
 

os.Rename()這個函數(shù)的原型是func Rename(oldname, newname string) error,輸入的是舊文件名,新文件名,然后返回一個error其實這個函數(shù)的真正實現(xiàn)用的syscall.Rename()然后通過MoveFile(from *uint16, to *uint16) (err error) = MoveFileW來重新命名

復(fù)制代碼代碼如下:

 import (
 "fmt"
 "os"
)

 

func main() {
 err := os.Rename("1.go", "2.go")
 if err != nil {
  if os.IsExist(err) { //判斷一個是否文件已經(jīng)存在的錯誤
   fmt.Println("文件已經(jīng)存在")
   os.Rename("1.go", "widuu_1.go")
  }
 }
}


os.SameFile()這個函數(shù)的作用是檢測文件的信息是否相同所謂文件信息指的是os.Stat(),函數(shù)原型是func SameFile(fi1, fi2 FileInfo) bool
舉個例子
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f1, _ := os.Stat("1.go")
 f2, _ := os.Stat("21.go")
 if os.SameFile(f1, f2) {
  fmt.Println("兩個文件一樣")
  return
 }
 fmt.Println("兩個文件不一樣")
}


os.Setenv()這個函數(shù)是設(shè)置環(huán)境變量的很簡單,函數(shù)原型func Setenv(key, value string) error輸入對應(yīng)的key-value字符串,返回error信息
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 err := os.Setenv("WD_PATH", "D:/golang")
 if err != nil {
  fmt.Println(err)
 }
 env := os.Getenv("WD_PATH")
 fmt.Println(env) //返回的是D:/golang
}


os.Symlink()對于這個函數(shù)我只能說不支持windows平臺的,創(chuàng)建軟連接func Symlink(oldname, newname string) error
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 err := os.Symlink("1.go", "21.go") //不支持windows平臺只支持linux和unix
 fmt.Println(err)
}


os.TempDir()這個函數(shù)很簡單,返回你本地的系統(tǒng)temp目錄,函數(shù)原型func TempDir() string,嘿嘿,做個對比別亂了
復(fù)制代碼代碼如下:

import (
 "fmt"
 "io/ioutil"
 "os"
)

 

func main() {
 //創(chuàng)建臨時的tmp
 dir, _ := os.Getwd()
 path, _ := ioutil.TempDir(dir, "tmp")
 fmt.Println(path) //D:/test/tmp764030415
 //這個返回的是系統(tǒng)temp
 temp := os.TempDir()
 fmt.Println(temp) //windows來說C:/Users/ADMINI~1/AppData/Local/Temp
}


os.Truncate()改變文件的f.Size()這個就改變了文件內(nèi)容的長度了,函數(shù)原型func Truncate(name string, size int64) error,記得哈第二個是int64
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Stat("1.go")
 fmt.Println(f.Size())   //1.go 83
 err := os.Truncate("1.go", 10)  
 if err != nil {
  fmt.Println(err)
 }
 f, _ = os.Stat("1.go")
 fmt.Println(f.Size())    //1.go現(xiàn)在是10 文件也變成了package ma
}


os.Create()這個函數(shù)是創(chuàng)見一個文件,函數(shù)的原型是func Create(name string) (file *File, err error)輸入的是名稱字符串類型,返回的是一個File的指針和一個error
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
 "reflect"
)

 

func main() {
 f, _ := os.Create("widuu_2.go")
 defer f.Close()
 fmt.Println(reflect.ValueOf(f).Type()) //*os.File
}


這個函數(shù)的原理其實是這樣的OpenFile(name, O_RDWR|O_CREATE|O_TRUNC, 0666) O_RDWR也就是說用讀寫的權(quán)限,O_CREATE然后文件存在忽略,不存在創(chuàng)建它,O_TRUNC文件存在截取長度為0,這就解釋了為什么我們明明有這個文件,我擦,創(chuàng)建之后哭了~啥都沒有了~~用的時候需謹(jǐn)慎,先判斷文件是否存在~

 

os.OpenFile函數(shù)的原型是func OpenFile(name string, flag int, perm FileMode) (file *File, err error)要指定文件權(quán)限和打開的方式,就是我們上邊所用到的

復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.OpenFile("10.go", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
 defer f.Close()
 fmt.Println(f.Stat())
}


這個就是上邊的Create()只不過權(quán)限是0777以及下邊的操作等大部分用到OpenFile()

 

os.Open()這個函數(shù)是打開文件使用的,函數(shù)原型是func Open(name string) (file *File, err error),返回值就不說了一樣的,它的其實原理是這樣的OpenFile(name, O_RDONLY, 0)以讀文件的模式打開

復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
 "reflect"
)

 

func main() {
 f, _ := os.Open("1.go")
 defer f.Close()
}


os.Stat()這個是獲取fileinfo的結(jié)構(gòu)描述func Stat(name string) (fi FileInfo, err error)返回了Fileinfo這個結(jié)構(gòu),我們再前邊也詳細講了
,其實它是怎么實現(xiàn)的呢?因為我們沒講syscall所以我們就講一個,譬如FileInfo底層獲取fs := &fileStat{name: basename(name)}然后后邊邏輯大家可以看源代碼
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Stat("1.go")
 fmt.Println(f.Size())
}


os.Fd()返回文件的句柄,函數(shù)原型是func (file *File) Fd() uintptr函數(shù)是這樣的uintptr(file.fd) 返回的是文件的句柄,句柄是什么?句柄,是整個windows編程的基礎(chǔ)。一個句柄是指使用的一個唯一的整數(shù)
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Open("1.go")
 fmt.Println(f.Fd()) //我的平臺句柄是228
}


os.Pipe()這個函數(shù)獲取的函數(shù)的讀寫指針,函數(shù)原型func Pipe() (r *File, w *File, err error)
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 r, w, _ := os.Pipe()
 fmt.Println(r, w) //&{0xc08402e120} &{0xc08402e180}
}


os.NewFile()函數(shù)原型是func NewFile(fd uintptr, name string) *File 第一個傳入的是句柄,然后是文件名稱,這個函數(shù)并不是真的創(chuàng)建了一個文件,是新建一個文件不保存,然后返回文件的指針
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 f, _ := os.Open("ini.go")
 defer f.Close()
 f1 := os.NewFile(f.Fd(), "ceshi.go") //輸如ini.go的句柄
 defer f1.Close()
 fd, _ := f1.Stat()
 fmt.Println(fd.ModTime()) //返回的是ini.go的創(chuàng)建時間2013-11-27 09:11:50.2793737 +0800 CST

}


(f *File).Chdir()修改工作目錄,函數(shù)原型func (f *File) Chdir() error,這個時候f必須是目錄了,但是吧這個不支持windows
復(fù)制代碼代碼如下:

import (
 "fmt"
 "os"
)

 

func main() {
 dir, _ := os.Getwd()
 fmt.Println(dir)
 f, _ := os.Open("views")
 err := f.Chdir()
 if err != nil {
  fmt.Println(err)
 }
 dir1, _ := os.Getwd()
 fmt.Println(dir1)
}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
日韩在线视频免费播放| 香蕉av在线| se01亚洲视频| 少妇精品久久久一区二区三区| 中文字幕精品一区二区三区在线| 色婷婷在线视频| 欧美性猛交xxxx乱大交少妇| 69堂精品视频在线播放| 黄色污污视频软件| 综合中文字幕| 免费高清完整在线观看| 北京富婆泄欲对白| 色婷婷狠狠18| 欧美性久久久久| 亚洲激情国产精品| 国产99视频精品免视看7| 国产精品系列在线播放| 亚洲欧美激情视频在线观看一区二区三区| a天堂资源在线观看| 日韩精品麻豆| 欧美丝袜一区二区| 中国丰满人妻videoshd| 欧美精品久久久久久久| 久久久精品2019中文字幕之3| 最近最新中文字幕在线| 日韩在线视频免费看| 欧美巨大xxxx做受沙滩| 老司机精品在线| 日韩在线免费| 少妇网站在线观看| 思思久久99热只有频精品66| 91久久免费观看| 亚洲第一在线视频| 国产精品对白刺激久久久| 91啦中文在线| 国产精品家庭影院| 日韩精品一区第一页| 高清欧美性猛交xxxx| 欧美日韩性生活视频| 免费看国产精品一二区视频| 在线观看国产高清视频| 精品久久国产字幕高潮| 欧美男男gaygay1069| 天天干天天操av| 奇米影视四色在观看线| 伊人色综合久久| 免费偷拍视频网站| 欧洲国内综合视频| 国产激情小视频| 男人天堂网视频| 亚洲最大的黄色网址| 综合激情视频| 国产字幕在线观看| 亚洲啪啪aⅴ一区二区三区9色| 免费看的国产视频网站| 91久久精品一区二区三区| 久久久精品蜜桃| 久久野战av| 日韩精品社区| 国产日韩在线看| 国产精品网站大全| 一级香蕉视频在线观看| 成人a在线视频| 卡一卡二卡三在线观看| 婷婷亚洲久悠悠色悠在线播放| 国内精品久久久久久久久久| 欧美性猛片xxxx免费看久爱| 国产免费一区二区| aa亚洲一区一区三区| 精品国产1区2区3区| 欧美成年人在线观看| 欧美成人精品欧美一级私黄| 天天亚洲美女在线视频| 国产一区二区三区免费观看| 中文字幕欧美人妻精品一区蜜臀| 中文字幕精品—区二区日日骚| 好吊视频一区二区三区四区| 亚洲欧美韩国| 好吊一区二区三区| av在线播放中文字幕| 一区二区精彩视频| 日韩av在线免播放器| 精品99视频| 欧美午夜精品久久久久久孕妇| 亚洲国产一区二区三区在线| www.在线视频| 黄色网址三级| 黄网站在线观看高清免费| 国产精品国产三级国产aⅴ原创| 国产精品国产精品国产专区| 一区免费观看| 久久精品国产免费| 国产激情视频一区二区三区| 天堂av在线免费观看| 天天摸天天干天天操| 一级毛片视频在线观看| 性xxxxfreexxxxx欧美丶| 久久综合亚洲色hezyo国产| 中文幕无线码中文字蜜桃| 久久久久久久免费视频了| 欧美三级日本三级少妇99| 三级男人添奶爽爽爽视频| 影音先锋国产资源| free欧美性| 日本在线视频一区二区| 欧洲久久久久久| 精品无码黑人又粗又大又长| 精品一区久久久久久| 神马久久午夜| 亚洲人成绝费网站色www| 国产亚洲精品日韩| 日本精品一二三区| 色女孩综合网| 午夜成人免费视频| 欧美精品自拍偷拍动漫精品| 波多野结衣黄色| 欧美一a一片一级一片| 欧美人妻一区二区| 日产中文字幕在线精品一区| 精品国产一区二区三区| 国产高清免费在线观看| 男人的天堂视频在线| 国产熟妇久久777777| 欧美丰满少妇xxxxx做受| 日本久久精品一区二区| 少妇视频在线播放| 三级a三级三级三级a十八发禁止| 日本一本在线观看| 欧美性色黄大片手机版| 人妻中文字幕一区| 国产裸体歌舞团一区二区| 中文字幕人妻一区二区三区视频| 九色综合国产一区二区三区| 国产免费成人| 亚洲国产精品久久久久婷婷老年| 天天干天天爽| 啦啦啦在线视频免费观看高清中文| 亚洲精品一区二区网址| 亚洲va久久久噜噜噜| 亚洲3atv精品一区二区三区| 日韩三级电影免费观看| 成人做爰66片免费看网站| 暖暖成人免费视频| 国产亚洲精品久久久优势| 色是在线视频| 国产色播av在线| 爱情岛论坛vip永久入口| 色综合亚洲精品激情狠狠| www.午夜激情| 青春草视频在线| 国产精品亚洲欧美| 综合av第一页| 超碰cao国产精品一区二区| 久久久久亚洲精品成人网小说| 亚洲综合影院| 国产一级生活片| 亚洲小说图片区| 久久66热re国产| 午夜视频久久久| 日韩av手机版| 精品一二三四在线| 在线人成动漫视频在线观看| 桃色av一区二区| 亚洲一区二区在线免费| 国产伦理久久久久久妇女| ririsao久久精品一区| 欧美日韩一区二区视频在线| 91九色国产ts另类人妖| 麻豆av在线导航| 在线观看视频一区二区欧美日韩| 在线观看日本黄色| 99c视频在线| 日本vs亚洲vs韩国一区三区| 国产一级片久久| 欧美一乱一性一交一视频| 亚洲人成网站色ww在线| 奇米网人体黄视频| 欧美色999| 在线免费观看黄| 国产一级特黄a大片99| 国产精久久久| 欧美一区二区在线视频| 91精品啪在线观看国产81旧版| 国产麻豆乱码精品一区二区三区| 亚洲色图清纯唯美| 一区二区三区不卡视频| 精品欧美色视频网站在线观看| 亚洲欧美成人| www.久久草.com| gogo大胆日本视频一区| 潮喷失禁大喷水aⅴ无码| 日本激情视频在线观看| 中文字幕 国产| 国产一区二区三区免费在线观看| 亚洲网友自拍偷拍| 欧洲精品久久一区二区| 97人人在线视频| 国一区二区在线观看| 91一区一区三区| 国产盗摄精品一区二区酒店| 国内成人精品视频| 好吊色一区二区三区| 天堂在线观看免费视频| 欧美午夜片欧美片在线观看| 久久国产手机看片| 黄色国产一级视频| 国产免费毛卡片| 美美女免费毛片| 亚洲日本欧美中文幕| 日本a级片免费| 天堂а√在线8种子蜜桃视频| 久久电影网站中文字幕| 亚洲少妇中出一区| 欧美性猛交xxxx免费看久久| 日日碰狠狠丁香久燥| 手机看片久久久| 日韩一级在线免费观看| 狠狠躁夜夜躁人人爽视频| 日韩免费观看在线观看| 国产精品久久久久久| 国产又黄又大久久| 日韩av一二三四区| 久久成人综合网| av网站导航在线观看免费| av中文字幕在线| 国产精品久久久久毛片软件| 手机av免费在线观看| 国产精品人人爽人人做我的可爱| 老头吃奶性行交视频| 男人天堂网视频| 中文字幕桃花岛| 粉嫩av性色av蜜臀av网站| 福利片一区二区三区| 黄色仓库视频网站| 亚洲日本视频在线观看| 国产精品无码久久久久久| 狠狠狠色丁香婷婷综合久久五月| 欧美人与禽猛交乱配| av免费观看久久| 国内精品久久久久久影院8f| 亚洲欧美国产精品专区久久| 久久综合一区二区三区| 青娱乐国产在线| 中文幕av一区二区三区佐山爱| 精品国产不卡一区二区| 国产va亚洲va在线va| 我不卡伦不卡影院| 国产免费电影网站入口| 91久久精品无嫩草影院| 国产又粗又大又爽的视频| 中文字幕亚洲综合久久筱田步美| 国产午夜精品视频免费不卡69堂| 免费看精品久久片| 牛牛电影国产一区二区| 二区三区在线观看| 男人插女人下面免费视频| 成人写真福利网| 狠狠干夜夜草| 久久精品国产大片免费观看| 国产91丝袜在线播放| 亚洲国产欧洲综合997久久| 亚欧美无遮挡hd高清在线视频| 波多野结衣之无限发射| 亚洲欧洲成人在线| 亚洲一卡二卡三卡四卡无卡网站在线看| 相泽南亚洲一区二区在线播放| 在线影视一区二区三区| 亚洲激精日韩激精欧美精品| av黄色一级片| 在线播放av片| 在线看的毛片| 久久美女艺术照精彩视频福利播放| 91精品婷婷国产综合久久蝌蚪| 亚洲天堂精品在线观看| 天天做天天爱天天爽综合网| 97影视大全免费追剧大全在线观看| 欧美三级免费看| 一区二区日韩免费看| 亚洲最大黄色| 综合久久国产九一剧情麻豆| aaa一区二区三区| 国产91白丝在线播放| 成人福利在线看| 欧美第一页浮力影院| 欧美性受xxxxxx黑人xyx性爽| 久久久99精品免费观看不卡| 欧美在线一区视频| 中文字幕在线观看国产| a级片国产精品自在拍在线播放| 日韩大胆成人| 国产毛片精品国产一区二区三区| 国产麻豆一区二区三区| 久久亚洲AV无码| sm在线观看| 国产一级在线播放| 国产a级黄色片| 欧美一区二区精品| 国产精品影视在线| 韩国女主播一区二区三区| 999这里有精品| 久久久三级国产网站| 激情婷婷综合| 动漫美女无遮挡免费| 日韩一二三区不卡| 日韩精品欧美国产精品忘忧草| 日韩免费观看在线观看| 九九99久久| 国产精品亚洲二区在线观看| 伊人久久一区二区| 日韩av密桃| 欧美激情一区二区三区在线视频观看| 国产成人小视频在线观看| 国产视频中文字幕在线观看| 不卡一区视频| 国产亚洲福利一区| av网站免费在线| 国产精品久久久久久免费| 国产一区二区美女| 欧美成人精品欧美一级私黄| 911国产精品| 精品一区二三区| 999在线精品| 日韩精品一区二区亚洲av| 亚洲欧美日韩图片| 亚洲人与黑人屁股眼交| 十大免费污污软件| 日韩高清中文字幕一区| 成av人免费青青久|