1. 程式人生 > >golang中os/user包用法

golang中os/user包用法

os/user包允許使用者賬號通過使用者名稱或者使用者id查詢使用者


type UnknownUserError

type UnknownUserError string

func (e UnknownUserError) Error() string  //當通過lookup無法查詢到某個使用者時,便會返回該錯誤.type UnknownUserIdError
type UnknownUserIdError int

func (e UnknownUserIdError) Error() string   ////當通過lookup無法查詢到某個使用者id時,便會返回該錯誤.


type User

type User struct {
	Uid      string // user id
	Gid      string // primary group id
	Username string  
	Name     string
	HomeDir  string      //使用者主目錄
}

func Current() (*User, error)    //獲取當前使用者資訊
func Lookup(username string) (*User, error) //根據使用者名稱查詢使用者資訊
func LookupId(uid string) (*User, error)   //根據使用者id查詢使用者資訊.

func main() {
	usr, err := user.Current()
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(usr.Gid)
	fmt.Println(usr.HomeDir)
	fmt.Println(usr.Name)
	fmt.Println(usr.Uid)
	fmt.Println(usr.Username)
	usr, _ = user.Lookup("root") //根據user name查詢使用者
	fmt.Println(usr)
	usr, err = user.LookupId("1100") //根據userid查詢使用者
	fmt.Println(usr, err)
}


相關推薦

golangos/user用法

os/user包允許使用者賬號通過使用者名稱或者使用者id查詢使用者 type UnknownUserError type UnknownUserError string func (e UnknownUserError) Error() string  //當通過

golangos/exec用法

exec包執行外部命令,它將os.StartProcess進行包裝使得它更容易對映到stdin和stdout,並且利用pipe連線i/o. func LookPath(file string) (string, error) //LookPath在環境變數中查詢科執行二進位

golangarchive/zip用法

archive/zip包提供了zip歸檔檔案的讀寫操作。 在對zip包進行介紹之前,先說明一下zip和tar的區別。 二者都是對檔案進行歸檔,不進行壓縮。並且二者使用平臺不同,對於 Windows 平臺而言,最常用的格式是 zip 和 rar,國內大多數是用 rar,國外大

golangos/signal的使用

golang中os/signal包的使用   os/signal包實現對訊號的處理 golang中對訊號的處理主要使用os/signal包中的兩個方法:一個是notify方法用來監聽收到的訊號;一個是 stop方法用來取消監聽。 func Notify(c chan<

golang 的 time 的 Ticker

target spa tro int select con www 結果 div 真實的應用場景是:在測試收包的順序的時候,加了個 tick 就發現丟包了 那麽來看一個應用例子: package main import ( "fmt" "runtime"

golang的bytes

golang標準庫中提供了bytes包,該包幾乎和strings包給string提供的功能,只不過bytes包對應的是[]byte。和strings一樣,並不修改傳入變數,而是返回其副本修改之後的內容。 整個包分為以下幾種操作:轉換、比較、去除、分割、查詢、替換 一、轉換將s的副本中所有字元修改成大寫(小

golang的flag的使用

package flag import "flag" flag包實現了命令列引數的解析。 要求: 使用flag.String(), Bool(), Int()等函式註冊flag 本次使用flag.Stirng()來講解一些如何使用 1.首先根據程式碼來分析 pa

golangrecover和panic用法

golang中沒有try... catch...,所以當golang中遇到panic時,如果不進行recover,便會導致整個程式掛掉,具體例子如下: package main import ( "fmt" ) func main() { panic("fault

golang io用法(一)

不同的 下一個 同時 顯示 cte () ews 執行 忽略 本文轉自Golove博客:http://www.cnblogs.com/golove/p/3276678.html io 包為I/O原語提供了基礎的接口.它主要包裝了這些原語的已有實現,如 os 包中的

golang strconv用法

本文轉自Golove部落格:http://www.cnblogs.com/golove/p/3262925.html strconv 包中的函式和方法 // atob.go --------------------------------------------------

golangio用法(二)

io 包為I/O原語提供了基本的介面。它主要包裝了這些原語的已有實現。 由於這些介面和原語以不同的實現包裝了低階操作,因此除非另行通知,否則客戶端不應假定它們對於並行執行是安全的。 在io包中最重要的是兩個介面:Reader和Writer介面。本章所提到的各種IO包,都

golangsort用法

golang中也實現了排序演算法的包sort包. sort包中實現了3種基本的排序演算法:插入排序.快排和堆排序.和其他語言中一樣,這三種方式都是不公開的,他們只在sort包內部使用.所以使用者在使用sort包進行排序時無需考慮使用那種排序方式,sort.Interface

golangimage用法

image包實現了一個基本的2D影象庫,該包中包含基本的介面叫做image,這個裡面包含color,這個將在image/color中描述, image介面的值建立方式有如下幾種: 1呼叫NewRGBA和NewPaletted 2解碼一個包含gif.jpen或者png格式的i

golangtime用法

time包中包括兩類時間:時間點(某一時刻)和時常(某一段時間) 1時間常量(時間格式化) const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:0

GoLangfmt用法

package fmt import "fmt" mt包實現了類似C語言printf和scanf的格式化I/O。格式化verb('verb')源自C語言但更簡單。 Printing verb: 通用: %v 值的預設格式表示。當輸出結構體時,擴充套件標誌(%+v)

golang unicode用法

本文轉自Golove部落格:http://www.cnblogs.com/golove/p/3273585.html unicode 包中的函式和方法 // latters.go const ( MaxRune = '\U0010FFFF' // Unicode 碼點最大值

GO_05_2:Golang panic、recover、defer 的用法

log logs lan finall 可能 錯誤處理 錯誤 異常處理 auto 函數 defer   1. 它的執行方式類似其他語言中的折構函數,在函數體執行結束後按照調用順序的 相反順序 逐個執行   2. 即使函數發生 嚴重錯誤 也會被執行,類似於 java 中 t

golangtcp socket粘問題和處理

enc pack 獲取 人工 過程 reader 主動 exit ase 轉自:http://www.01happy.com/golang-tcp-socket-adhere/ 在用golang開發人工客服系統的時候碰到了粘包問題,那麽什麽是粘包呢?例如我們和客戶端約定數據

Go_20: Golang time 的使用

舉例 處理程序 計算表達式 時間格式化 停止 out str div ati time包中包括兩類時間:時間點(某一時刻)和時常(某一段時間) 1. 時間常量(時間格式化) const ( ANSIC = "Mon Jan _2 15:04:05 20

golang sync的 WaitGroup

eight ack family height 線程 var 等待 one span   golang 中的 sync 包有一個很有用的功能,就是 WaitGroup   先說說 WaitGroup 的用途:它能夠一直等到所有的 goroutine 執行完成,並且阻塞主線程