欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go語(yǔ)言的os包中常用函數(shù)初步歸納

 更新時(shí)間:2015年10月27日 17:37:01   投稿:goldensun  
這篇文章主要介紹了Go語(yǔ)言的os包中常用函數(shù)初步歸納,用于一些和系統(tǒng)交互功能的實(shí)現(xiàn),需要的朋友可以參考下

(1)os.Getwd函數(shù)原型是func Getwd() (pwd string, err error) 返回的是路徑的字符串和一個(gè)err信息,為什么先開(kāi)這個(gè)呢?因?yàn)槲铱磑s的包的時(shí)候第一個(gè)是Chkdir這個(gè)包,但是你不知道當(dāng)前目錄怎么知道改變目錄了呢?所以先說(shuō)Getwd() 函數(shù)demo

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

import (
 "fmt"
 "os"
)

func main() {
 dir, _ := os.Getwd()
 fmt.Println("當(dāng)前的目錄是:", dir)  //當(dāng)前的目錄是: D:\test 我的環(huán)境是windows 如果linix 就是/xxx/xxx
}


(2)既然說(shuō)了Getwd()了,我們就把os里邊的Get全部都說(shuō)了吧!os.Getenv()獲取系統(tǒng)的環(huán)境變量,函數(shù)原型是func Getenv(key string) string輸入的是一個(gè)string的環(huán)境變量名稱(chēng),返回的是值
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 path := os.Getenv("GOPATH")
 fmt.Println("環(huán)境變量GOPATH的值是:", path) //windows下 環(huán)境變量PATH的值是: D:\test;C:\Go\bin; linux 環(huán)境變量GOPATH的值是: /data/goweb
}


(3)下邊的get信息 如果沒(méi)有:=的就是返回的都是int一般很少用到的 我就給注釋了做什么的?然后windows和linux結(jié)果是什么?
 fmt.Println(os.Getegid())      windows -1  linux  0     //調(diào)用者的group的id
 fmt.Println(os.Geteuid())     windows -1  linux  0     //用戶(hù)的uid
 fmt.Println(os.Getgid())      windows -1  linux  0     //調(diào)用者的gid的id
 g, _ := os.Getgroups()       
 fmt.Println(g)                windows []  linux  []    //返回的是一個(gè)[]int的切片 顯示調(diào)用者屬于組的一系列id
 fmt.Println(os.Getpagesize())  windows 4096linux  4096  //windows里邊叫做虛擬內(nèi)存 linux里邊叫做swap
 fmt.Println(os.Getppid())      windows -1  linux  8621  //調(diào)用者的組的進(jìn)程id
 fmt.Println(os.Getuid())    windows -1  linux  0  //調(diào)用者的數(shù)字用戶(hù)id
(4)os.Chdir()這個(gè)函數(shù)的原型是func Chdir(dir string) error 輸入字符類(lèi)型,返回的是錯(cuò)誤結(jié)果,如果改變成功了error=nil
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 fmt.Println(os.Getwd())              //顯示當(dāng)前的目錄 D:\test <nil>
 fmt.Println(os.Chdir("D:/test/src")) //返回<nil>正確切換目錄了
 fmt.Println(os.Getwd())              //切換后的目錄D:\test\src <nil>
}


(5)os.Stat()這個(gè)函數(shù)是獲取文件的信息,函數(shù)函數(shù)的原型func Stat(name string) (fi FileInfo, err error)輸出是文件的名稱(chēng)返回一個(gè)FileInfo的接口和err信息,上一個(gè)分析ioutil的時(shí)候我們就介紹FileInfo的接口類(lèi)型了
復(fù)制代碼 代碼如下:

type FileInfo interface {
    Name() string       // 文件的名稱(chēng)
    Size() int64        // 唱過(guò)文件的大小
    Mode() FileMode     // 文件的權(quán)限
    ModTime() time.Time // 時(shí)間
    IsDir() bool        // 是否是目錄
    Sys() interface{}   // 基礎(chǔ)數(shù)據(jù)源接口(can return nil)
}
import (
 "fmt"
 "os"
)

func main() {
 filemode, _ := os.Stat("widuu.go") 
 fmt.Println(filemode.Mode())        //獲取權(quán)限 linux 0600
}


(6)os.Chmod()這個(gè)函數(shù)的原型是func Chmod(name string, mode FileMode) error改變文件的屬性 譬如讀寫(xiě),linux上的0755這樣大家可以理解了吧
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 filemode, _ := os.Stat("widuu.go") 
 fmt.Println(filemode.Mode())        //獲取權(quán)限 linux 0600
 err := os.Chmod("widuu.go", 0777)   //改變的是文件的權(quán)限
 if err!=nil{
  fmt.Println("修改文件權(quán)限失敗")
 }
 filemode, _ = os.Stat("widuu.go") 
 fmt.Println(filemode.Mode())        //獲取權(quán)限是0777

}


(7)os.Chtime()這個(gè)包,函數(shù)的原形是func Chtimes(name string, atime time.Time, mtime time.Time) error 輸入string的文件的名稱(chēng) 訪問(wèn)時(shí)間 創(chuàng)建時(shí)間 返回的是error接口信息
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
 "time"
)

func main() {
 err := os.Chtimes("2.go", time.Now(), time.Now())  //改變時(shí)間
 if err != nil {
  fmt.Println(err)
 }
 fi, _ := os.Stat("2.go")
 fmt.Println(fi.ModTime())   //輸出時(shí)間 2013-12-29 20:46:23.0005257 +0800 +0800
}


(8)os.Environ()的作用是獲取系統(tǒng)的環(huán)境變量,函數(shù)原形是func Environ() []string返回是環(huán)境變量的[]string切片,說(shuō)道這個(gè)就要和其他的一起說(shuō)明了,那就是os.ClearEnv()清空環(huán)境變量
復(fù)制代碼 代碼如下:

func main() {
 data := os.Environ() //輸出之前的環(huán)境變量 APPDATA=C:\Users\xiaolvge\AppData\Roaming CLASSPATH=.;D:\java\jdk1.6.0_38…………
 fmt.Println(data)
 os.Clearenv() //清空環(huán)境變量
 data = os.Environ()
 fmt.Println(data) //輸出[]string類(lèi)型的切片[]
}

(9)os.Exit()就是中斷程序返回自定義的int類(lèi)型的代碼,函數(shù)運(yùn)行是func Exit(code int)輸入一個(gè)int的值就可以了
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 func() {
  for {
   fmt.Println("這個(gè)是匿名函數(shù)")
   os.Exit(1)    //輸出exit status 1中斷操作
  }
 }()
}


(10)函數(shù)os.Expand()這個(gè)其實(shí)就是一個(gè)回調(diào)函數(shù)替換的方法,函數(shù)的原形是func Expand(s string, mapping func(string) string) string 輸入的是一個(gè)string。對(duì)應(yīng)的是func(string)string的替換字符串的方法,如果沒(méi)有字符就替換為空
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 mapping := func(s string) string {
  m := map[string]string{"widuu": "www.dbjr.com.cn", "xiaowei": "widuu"}
  return m[s]
 }
 data := "hello $xiaowei blog address $widuu"
 fmt.Printf("%s", os.Expand(data, mapping)) //輸出hello widuu blog address www.dbjr.com.cn}


(11)os.ExpandEnv()把字符串的s替換成環(huán)境變量的內(nèi)容,函數(shù)的原形是func ExpandEnv(s string) string,輸入的當(dāng)然是要替換的字符,輸出的當(dāng)然還是字符串了
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 data := "GOBIN PATH $GOBIN"
 fmt.Println(os.ExpandEnv(data)) //輸出我本地的環(huán)境變量的GOBIN的地址GOBIN PATH C:\Go\bin
}


(12)os.Hostname()這個(gè)函數(shù)看字面的思意就懂了,是返回主機(jī)的HostName(),函數(shù)的原形是func Hostname() (name string, err error)返回主機(jī)名字和一個(gè)error的接口信息
復(fù)制代碼 代碼如下:

import (
 "fmt"
 "os"
)

func main() {
 data, _ := os.Hostname()
 fmt.Println(data) //我是windows環(huán)境下返回我的win的主機(jī)名 WIDUU
}

相關(guān)文章

  • Go之集合slice的實(shí)現(xiàn)

    Go之集合slice的實(shí)現(xiàn)

    本文主要介紹了Go之集合slice的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • golang switch語(yǔ)句的靈活寫(xiě)法介紹

    golang switch語(yǔ)句的靈活寫(xiě)法介紹

    這篇文章主要介紹了golang switch語(yǔ)句的靈活寫(xiě)法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-05-05
  • Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版)

    Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版)

    這篇文章主要介紹了Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vscode中安裝Go插件和配置Go環(huán)境詳細(xì)步驟

    vscode中安裝Go插件和配置Go環(huán)境詳細(xì)步驟

    要在VSCode中配置Go語(yǔ)言插件,首先需要確保你的電腦已經(jīng)安裝了Go環(huán)境和最新版本的VSCode,這篇文章主要給大家介紹了關(guān)于vscode中安裝Go插件和配置Go環(huán)境的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Go 基于令牌桶的限流器實(shí)現(xiàn)

    Go 基于令牌桶的限流器實(shí)現(xiàn)

    如果一般流量過(guò)大,下游系統(tǒng)反應(yīng)不過(guò)來(lái),這個(gè)時(shí)候就需要限流了,本文主要介紹了Go 基于令牌桶的限流器實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • go語(yǔ)言如何導(dǎo)入和使用包示例詳解

    go語(yǔ)言如何導(dǎo)入和使用包示例詳解

    這篇文章主要為大家介紹了go語(yǔ)言如何導(dǎo)入和使用包示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Go逃逸分析示例詳解

    Go逃逸分析示例詳解

    這篇文章主要為大家介紹了Go逃逸分析示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • GO將mysql?中?decimal?數(shù)據(jù)類(lèi)型映射到?protobuf的操作方法

    GO將mysql?中?decimal?數(shù)據(jù)類(lèi)型映射到?protobuf的操作方法

    這篇文章主要介紹了go如何優(yōu)雅地將?mysql?中?decimal?數(shù)據(jù)類(lèi)型映射到?protobuf,本文主要展示一下在 protobuf中 float與double的一個(gè)區(qū)別,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Go單體服務(wù)開(kāi)發(fā)最佳實(shí)踐總結(jié)

    Go單體服務(wù)開(kāi)發(fā)最佳實(shí)踐總結(jié)

    這篇文章主要介紹了Go單體服務(wù)開(kāi)發(fā)最佳實(shí)踐,通過(guò)本文詳細(xì)跟大家分享一下如何使用?go-zero?快速開(kāi)發(fā)一個(gè)有多個(gè)模塊的單體服務(wù),需要的朋友可以參考下
    2022-04-04
  • Go語(yǔ)言構(gòu)建流數(shù)據(jù)pipeline的示例詳解

    Go語(yǔ)言構(gòu)建流數(shù)據(jù)pipeline的示例詳解

    Go的并發(fā)原語(yǔ)可以輕松構(gòu)建流數(shù)據(jù)管道,從而高效利用?I/O?和多個(gè)?CPU,?本文展示了此類(lèi)pipelines的示例,強(qiáng)調(diào)了操作失敗時(shí)出現(xiàn)的細(xì)微之處,并介紹了干凈地處理失敗的技術(shù),希望對(duì)大家有所幫助
    2024-02-02

最新評(píng)論