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

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

Golang的os標準庫中常用函數的整理介紹

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

os.Rename()這個函數的原型是func Rename(oldname, newname string) error,輸入的是舊文件名,新文件名,然后返回一個error其實這個函數的真正實現用的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) { //判斷一個是否文件已經存在的錯誤
   fmt.Println("文件已經存在")
   os.Rename("1.go", "widuu_1.go")
  }
 }
}


os.SameFile()這個函數的作用是檢測文件的信息是否相同所謂文件信息指的是os.Stat(),函數原型是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()這個函數是設置環境變量的很簡單,函數原型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()對于這個函數我只能說不支持windows平臺的,創建軟連接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()這個函數很簡單,返回你本地的系統temp目錄,函數原型func TempDir() string,嘿嘿,做個對比別亂了
復制代碼 代碼如下:

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

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


os.Truncate()改變文件的f.Size()這個就改變了文件內容的長度了,函數原型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現在是10 文件也變成了package ma
}


os.Create()這個函數是創見一個文件,函數的原型是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
}


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

os.OpenFile函數的原型是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()這個函數是打開文件使用的,函數原型是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這個結構,我們再前邊也詳細講了
,其實它是怎么實現的呢?因為我們沒講syscall所以我們就講一個,譬如FileInfo底層獲取fs := fileStat{name: basename(name)}然后后邊邏輯大家可以看源代碼
復制代碼 代碼如下:

import (
 "fmt"
 "os"
)

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


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

import (
 "fmt"
 "os"
)

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


os.Pipe()這個函數獲取的函數的讀寫指針,函數原型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()函數原型是func NewFile(fd uintptr, name string) *File 第一個傳入的是句柄,然后是文件名稱,這個函數并不是真的創建了一個文件,是新建一個文件不保存,然后返回文件的指針
復制代碼 代碼如下:

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的創建時間2013-11-27 09:11:50.2793737 +0800 CST

}


(f *File).Chdir()修改工作目錄,函數原型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詳解(什么是系統調用)
  • Golang 標準庫 tips之waitgroup詳解

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

巨人網絡通訊聲明:本文標題《Golang的os標準庫中常用函數的整理介紹》,本文關鍵詞  Golang,的,標準,庫中,常用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Golang的os標準庫中常用函數的整理介紹》相關的同類信息!
  • 本頁收集關于Golang的os標準庫中常用函數的整理介紹的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美性大战久久久久久久 | 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 欧美在线免费视屏| 国产在线视频一区二区| 日本不卡1234视频| 亚洲一区二区三区中文字幕| 国产精品免费丝袜| 久久久国产精品午夜一区ai换脸| 91精品视频网| 在线播放一区二区三区| av中文字幕不卡| 成人sese在线| 97久久久精品综合88久久| 成人97人人超碰人人99| 国产乱妇无码大片在线观看| 美腿丝袜亚洲一区| 美女久久久精品| 麻豆91精品91久久久的内涵| 日产精品久久久久久久性色| 天天影视色香欲综合网老头| 亚洲午夜在线观看视频在线| 亚洲六月丁香色婷婷综合久久| 国产精品免费aⅴ片在线观看| 中文字幕精品在线不卡| 亚洲国产精品成人久久综合一区 | 经典三级一区二区| 日本va欧美va欧美va精品| 日本欧美大码aⅴ在线播放| 石原莉奈在线亚洲二区| 日韩激情在线观看| 久久99九九99精品| 国产精品亚洲一区二区三区在线| 国产精品一区二区在线观看网站 | 国产精品久久久久久户外露出 | 天堂成人免费av电影一区| 日本午夜一区二区| 韩国三级中文字幕hd久久精品| 国产在线播放一区| 成人高清免费观看| 欧美在线一区二区| 日韩一级免费观看| 中日韩免费视频中文字幕| 一级特黄大欧美久久久| 午夜欧美一区二区三区在线播放| 奇米777欧美一区二区| 国产91精品久久久久久久网曝门| 色吧成人激情小说| 欧美吻胸吃奶大尺度电影| 色妞www精品视频| 3751色影院一区二区三区| 精品国产电影一区二区| 国产精品动漫网站| 视频在线观看一区| 国产成人免费视频网站| 欧美日韩亚洲国产综合| 久久综合九色综合久久久精品综合| 欧美极品aⅴ影院| 午夜精品视频在线观看| 日韩制服丝袜先锋影音| 国产毛片精品国产一区二区三区| 色视频一区二区| 久久久久久久久99精品| 一区二区三区在线高清| 国产一区二区主播在线| 欧美色倩网站大全免费| 久久精品视频一区二区| 视频在线观看91| 99精品偷自拍| 精品人在线二区三区| 亚洲精品日日夜夜| 国产传媒久久文化传媒| 6080国产精品一区二区| 亚洲三级电影全部在线观看高清| 国产麻豆精品一区二区| 欧美疯狂性受xxxxx喷水图片| 亚洲另类在线视频| 99精品国产99久久久久久白柏| 久久伊人蜜桃av一区二区| 免费在线成人网| 欧美丰满高潮xxxx喷水动漫| 伊人色综合久久天天人手人婷| 成人av先锋影音| 精品不卡在线视频| 精彩视频一区二区| 欧美精品一区二区三区很污很色的| 日本女优在线视频一区二区| 欧美人牲a欧美精品| 亚洲图片有声小说| 91亚洲午夜精品久久久久久| 欧美经典一区二区三区| 国产suv一区二区三区88区| 久久久久97国产精华液好用吗| 美女www一区二区| 日韩视频国产视频| 日本不卡一区二区| 91精品国产麻豆国产自产在线| 亚洲成人中文在线| 欧美伦理视频网站| 天天综合日日夜夜精品| 91麻豆精品国产91久久久久久久久| 亚洲已满18点击进入久久| 91精品福利视频| 亚洲国产裸拍裸体视频在线观看乱了| 色天天综合久久久久综合片| 亚洲午夜久久久| 欧美军同video69gay| 亚洲电影你懂得| 欧美日韩高清一区| 日本不卡的三区四区五区| 精品欧美乱码久久久久久 | 成人免费小视频| 91蜜桃传媒精品久久久一区二区| 亚洲黄色免费电影| 欧美日韩高清一区二区| 激情另类小说区图片区视频区| 久久婷婷成人综合色| yourporn久久国产精品| 亚洲国产精品精华液网站| 日韩免费一区二区| 波多野结衣亚洲| 婷婷夜色潮精品综合在线| 日韩欧美国产麻豆| 成人网页在线观看| 香蕉乱码成人久久天堂爱免费| 欧美精品一区二区三区高清aⅴ| 国产成人午夜精品影院观看视频| 国产丝袜美腿一区二区三区| 不卡一区中文字幕| 蜜桃av一区二区| 国产精品成人免费| 56国语精品自产拍在线观看| 国产精品77777竹菊影视小说| 亚洲免费资源在线播放| 欧美一级久久久久久久大片| 国产电影一区在线| 五月婷婷激情综合| 中文字幕中文字幕一区二区| 欧美日韩国产大片| 成人黄色在线视频| 美日韩黄色大片| 一区二区三区电影在线播| 久久精品网站免费观看| 欧美日韩一区二区三区高清| 顶级嫩模精品视频在线看| 日韩电影在线观看网站| 中文字幕亚洲电影| 日韩欧美视频一区| 欧洲精品一区二区| 国产成都精品91一区二区三| 天天综合网天天综合色| 亚洲精品久久7777| 国产亚洲欧美一区在线观看| 欧美男生操女生| 91免费小视频| 国产精品资源站在线| 久久精品国产精品青草| 午夜久久久影院| 亚洲午夜激情网站| 亚洲免费在线观看视频| 国产日韩av一区| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩一区视频| 一本大道av伊人久久综合| 国产成人啪免费观看软件| 国产一区二三区好的| 九色porny丨国产精品| 亚洲国产精品欧美一二99| 亚洲精品精品亚洲| 一区二区三区毛片| 成人欧美一区二区三区小说 | 捆绑调教一区二区三区| 亚洲一区二区高清| 亚洲国产精品一区二区久久| 一区二区三区影院| 国产欧美日韩另类视频免费观看| 555www色欧美视频| 51午夜精品国产| 91精品国产综合久久精品麻豆| 欧美日本一区二区在线观看| 欧美在线观看视频一区二区 | 日韩精品一区二区三区三区免费 | www亚洲一区| 777午夜精品免费视频| 欧美日韩三级一区二区| 7777精品伊人久久久大香线蕉 | 国产一区二区三区免费播放| 国产又黄又大久久| 国产成人一区二区精品非洲| 国产乱妇无码大片在线观看| 成人国产视频在线观看| www.性欧美| 欧美吞精做爰啪啪高潮| 91麻豆精品国产无毒不卡在线观看 | 日韩欧美卡一卡二| 精品电影一区二区三区| 国产精品网曝门| 亚洲色图欧美在线| 亚洲成人av一区| 免费成人小视频| 国产在线播精品第三|