婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Golang的os標準庫中常用函數(shù)的整理介紹

Golang的os標準庫中常用函數(shù)的整理介紹

熱門標簽:谷歌便利店地圖標注 百度地圖標注搜索關鍵詞 騰訊外呼系統(tǒng)價格 ?兓? 電梯外呼訪客系統(tǒng) 最短的地圖標注 浙江人工智能外呼管理系統(tǒng) 成都呼叫中心外呼系統(tǒng)平臺 電銷機器人可以補救房產(chǎn)中介嗎

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

復制代碼 代碼如下:

 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
舉個例子
復制代碼 代碼如下:

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ù)是設置環(huán)境變量的很簡單,函數(shù)原型func Setenv(key, value string) error輸入對應的key-value字符串,返回error信息
復制代碼 代碼如下:

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
復制代碼 代碼如下:

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,嘿嘿,做個對比別亂了
復制代碼 代碼如下:

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
復制代碼 代碼如下:

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
復制代碼 代碼如下:

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也就是說用讀寫的權限,O_CREATE然后文件存在忽略,不存在創(chuàng)建它,O_TRUNC文件存在截取長度為0,這就解釋了為什么我們明明有這個文件,我擦,創(chuàng)建之后哭了~啥都沒有了~~用的時候需謹慎,先判斷文件是否存在~

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

復制代碼 代碼如下:

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()只不過權限是0777以及下邊的操作等大部分用到OpenFile()

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

復制代碼 代碼如下:

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

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


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

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編程的基礎。一個句柄是指使用的一個唯一的整數(shù)
復制代碼 代碼如下:

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)
復制代碼 代碼如下:

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)建了一個文件,是新建一個文件不保存,然后返回文件的指針
復制代碼 代碼如下:

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
復制代碼 代碼如下:

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)
}

您可能感興趣的文章:
  • 解決Golang 中使用WaitGroup的那點坑
  • 在golang中使用Sync.WaitGroup解決等待的問題
  • Golang中的sync包的WaitGroup操作
  • Golang中的sync.WaitGroup用法實例
  • Golang標準庫syscall詳解(什么是系統(tǒng)調(diào)用)
  • Golang 標準庫 tips之waitgroup詳解

標簽:宜昌 邢臺 上海 雅安 眉山 紹興 七臺河 盤錦

巨人網(wǎng)絡通訊聲明:本文標題《Golang的os標準庫中常用函數(shù)的整理介紹》,本文關鍵詞  Golang,的,標準,庫中,常用,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang的os標準庫中常用函數(shù)的整理介紹》相關的同類信息!
  • 本頁收集關于Golang的os標準庫中常用函數(shù)的整理介紹的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日本高清不卡一区| 久久亚洲欧美国产精品乐播| 日韩精品中午字幕| 国产精品不卡在线| 麻豆精品在线播放| 在线观看欧美黄色| 国产精品丝袜黑色高跟| 日日夜夜免费精品视频| 91丝袜呻吟高潮美腿白嫩在线观看| 在线播放日韩导航| 一区二区三区久久| 91视频观看视频| 欧美国产日韩精品免费观看| 秋霞午夜av一区二区三区| 一本大道久久a久久精二百| 亚洲欧洲综合另类| 久久精品国产秦先生| 欧美日韩国产片| 亚洲精品欧美二区三区中文字幕| 国产资源在线一区| 欧美tickling网站挠脚心| 亚洲一二三区视频在线观看| 欧洲在线/亚洲| 一区二区成人在线观看| 91在线视频网址| 国产精品久久久久久久久免费樱桃| 国产精品香蕉一区二区三区| 日韩欧美成人一区| 久久精品国产久精国产爱| 欧美一区二区三区色| 美女性感视频久久| 精品国产免费人成在线观看| 全部av―极品视觉盛宴亚洲| 日韩一区二区在线免费观看| 日韩国产高清在线| 欧美精品一区二区三区很污很色的| 麻豆成人免费电影| 久久女同精品一区二区| 国产精品夜夜嗨| 日本一区免费视频| 91视频91自| 亚洲大片精品永久免费| 欧美女孩性生活视频| 日韩精品午夜视频| 2014亚洲片线观看视频免费| 国产又粗又猛又爽又黄91精品| 久久久久国产免费免费| av电影在线不卡| 亚洲成人在线网站| www日韩大片| 成人国产视频在线观看| 亚洲美女在线一区| 欧美一区二区美女| 国产白丝精品91爽爽久久| 国产精品免费av| 欧美性大战久久久久久久| 日韩专区中文字幕一区二区| 中文字幕一区av| 欧美日韩高清在线| 狠狠色综合色综合网络| 日韩美女视频一区二区| 欧美精品久久99| 国产成人三级在线观看| 亚洲三级理论片| 91精品国产一区二区人妖| 国产精品一二三| 午夜精彩视频在线观看不卡| 日韩一区二区高清| 99re在线精品| 免费成人在线播放| 亚洲女人的天堂| 欧美精品一区视频| 色婷婷久久久久swag精品| 九一九一国产精品| 亚洲精品国产高清久久伦理二区| 欧美一区二区三区免费| 99精品欧美一区二区蜜桃免费| 欧美a级一区二区| 日韩一区在线看| 精品乱人伦小说| 欧美午夜片在线看| 成人h动漫精品一区二区| 午夜久久久久久电影| 国产精品久久久久久久久免费相片 | 激情偷乱视频一区二区三区| 综合色天天鬼久久鬼色| 日韩免费高清电影| 26uuu久久天堂性欧美| www.欧美亚洲| 久久99精品一区二区三区| 日韩一区日韩二区| 久久女同性恋中文字幕| 欧美日韩另类一区| www.日韩在线| 国产成人在线视频免费播放| 日本免费在线视频不卡一不卡二| 中文字幕一区二区三| 久久久久九九视频| 91精品国产乱| 欧美精品久久天天躁| 欧美自拍偷拍午夜视频| caoporn国产一区二区| 国产乱妇无码大片在线观看| 美女国产一区二区三区| 丝瓜av网站精品一区二区 | 精品欧美黑人一区二区三区| 欧洲人成人精品| 91蝌蚪国产九色| 91丨porny丨中文| caoporen国产精品视频| jiyouzz国产精品久久| 高清在线观看日韩| 国产成人亚洲精品青草天美| 国产乱子轮精品视频| 国产乱国产乱300精品| 高清视频一区二区| 99久久er热在这里只有精品66| 丰满亚洲少妇av| www.欧美日韩| 91国偷自产一区二区开放时间| 色综合久久中文综合久久牛| 91激情五月电影| 欧美日韩精品欧美日韩精品一 | 欧美亚洲国产bt| 欧美日韩精品一区二区| 欧美日韩国产综合久久| 91精品国产综合久久精品图片| 制服丝袜亚洲播放| 久久久青草青青国产亚洲免观| 国产亚洲女人久久久久毛片| 中日韩免费视频中文字幕| 中文字幕一区二区三中文字幕| 亚洲色图欧美在线| 丝袜亚洲另类欧美综合| 精品一区二区三区在线播放 | 精品剧情v国产在线观看在线| 久久这里都是精品| 国产精品黄色在线观看| 夜夜爽夜夜爽精品视频| 麻豆精品久久久| 粉嫩绯色av一区二区在线观看 | 精品国产91乱码一区二区三区| 国产日韩影视精品| 亚洲一区二区精品视频| 日韩成人精品在线观看| 粉嫩aⅴ一区二区三区四区| 欧美影院一区二区| 欧美成va人片在线观看| 国产精品久久影院| 美女国产一区二区三区| 成人av片在线观看| 欧美精品tushy高清| 国产欧美日韩一区二区三区在线观看| 亚洲免费观看高清完整版在线观看 | 亚洲与欧洲av电影| 国产综合色视频| 色综合久久久久久久久久久| 日韩一级片网址| 亚洲欧美国产三级| 国内久久精品视频| 欧美精品日韩综合在线| 国产精品剧情在线亚洲| 九色综合国产一区二区三区| 91国内精品野花午夜精品| 国产欧美一区二区精品秋霞影院| 亚洲宅男天堂在线观看无病毒| 国模无码大尺度一区二区三区| 欧美探花视频资源| 国产精品国产a| 国产美女主播视频一区| 欧美二区在线观看| 亚洲一区视频在线| av激情综合网| 中文字幕欧美日韩一区| 久久精品99久久久| 欧美美女黄视频| 一区二区三区四区在线播放 | 日韩视频免费观看高清完整版在线观看| 日韩伦理电影网| 成人涩涩免费视频| 精品日韩在线一区| 久久成人免费网| 欧美精品v日韩精品v韩国精品v| 亚洲精品老司机| 91网站在线观看视频| 亚洲国产成人自拍| 国产福利电影一区二区三区| 精品国产三级电影在线观看| 日韩精品电影在线观看| 欧美日韩国产片| 五月激情六月综合| 在线播放中文字幕一区| 天天操天天干天天综合网| 欧美午夜片在线看| 五月激情综合网| 日韩女优av电影在线观看| 蜜桃一区二区三区四区| 日韩欧美一区在线观看| 欧美a级一区二区| 久久网站热最新地址|