golang 获取环境信息】的更多相关文章

os.Environ() os.Getenv("TMP")…
golang获取程序运行路径: /* 获取程序运行路径 */ func getCurrentDirectory() string { dir, err := filepath.Abs(filepath.Dir(os.Args[0])) if err != nil { beego.Debug(err) } return strings.Replace(dir, "\\", "/", -1) }…
GoLang获取struct的tag内容:beego的ORM中也通过tag来定义参数的. 获取tag的内容是利用反射包来实现的.示例代码能清楚的看懂! package main import ( "fmt" "reflect" // 这里引入reflect模块 ) type User struct { Name string "user name" //这引号里面的就是tag Passwd string "user passsword&…
Golang获取CPU.内存.硬盘使用率 工具包 go get github.com/shirou/gopsutil 实现 func GetCpuPercent() float64 { percent, _:= cpu.Percent(time.Second, false) return percent[0] } func GetMemPercent()float64 { memInfo, _ := mem.VirtualMemory() return memInfo.UsedPercent }…
在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的原型: func Stat(name string) (FileInfo, error) Stat returns a FileInfo describing the named file. If there is an error, it will be of type *PathError. 返…
网络协议里面,很可能遇到自定义的封包,对应到c里面的是 typedef struct _PackageHeader { int headerLen; int timeStamp; short cmd }; 为了保证单字节对齐,可以加上编译选项 #pragma pack(1) 可惜的是,golang里面,没有这样的编译选项,猥琐的可参考的山寨代码如下 package main import ( "encoding/binary" "fmt" ) type TestSt…
如果某个函数的入参是interface{},有下面几种方式可以获取入参的方法: 1 fmt: import "fmt" func main() { v := "hello world" fmt.Println(typeof(v)) } func typeof(v interface{}) string { return fmt.Sprintf("%T", v) } 2 反射: import ( "reflect" "…
原文连接: https://blog.csdn.net/skh2015java/article/details/70051512 1.获取当前时间 currentTime:=time.Now() //获取当前时间,类型是Go的时间类型Time t1:=time.Now().Year() //年 t2:=time.Now().Month() //月 t3:=time.Now().Day() //日 t4:=time.Now().Hour() //小时 t5:=time.Now().Minute()…
一.背景 有些业务需要判断图片的宽高,来做一些图片相关缩放,旋转等基础操作. 但是图片缩放,旋转,拼接等操作需要将图片从 JPG 格式转成 RGBA 格式操作,操作完毕后,再转回 JPG 图片. 那如何不做 RGBA 的转换就能得到 JPG 图片的宽和高呢? 如下通过 JPG 文件的分析,并编写一个…
外部环境数据1.需要管理员权限2.需要安装office2003以上完整版3.需要安装flash reader 10.0以上4.需要安装adodb reader;Adobe Acrobat X Pro; 8.0以上 代码比较差,仅供学习.参考 /// <summary> /// 外部环境数据 /// 1.需要管理员权限 /// 2.需要安装office2003以上完整版 /// 3.需要安装flash reader 10.0以上 /// 4.需要安装adodb reader;Adobe Acro…
仅供参考 package main import ( "fmt" "log" "os" "strconv" "strings" registry "github.com/golang/sys/windows/registry" ) func main() { //查询插入的u盘个数 k, err := registry.OpenKey(registry.LOCAL_MACHINE, `S…
package main import ( "fmt" ) func main() { //获取一个数组里最大值,并且拿到下标 //声明一个数组5个元素 ], , , ,} //假设第一个元素是最大值,下标为0 maxVal := arr[] maxIndex := ; i < len(arr); i++ { //从第二个 元素开始循环比较,如果发现有更大的,则交换 if maxVal < arr[i] { maxVal = arr[i] maxIndex = i } }…
最近日志打印的时候需要打印状态码,但是因为interface的原因直接获取失败,http.Request里面的response不知道怎么使用,所以就自己重写writeheader,write来截取status type doneWriter struct { http.ResponseWriter done bool status int } func (w *doneWriter) WriteHeader(status int) { w.done = true w.status= status…
package main import ( "fmt" "time" ) func main() { fmt.Println(getHourDiffer("2016-09-10 13:00:00", "2016-09-10 14:50:00")) } //获取相差时间 func getHourDiffer(start_time, end_time string) int64 { var hour int64 t1, err :…
一.获取当前目录下的文件或目录信息(不包含多级子目录) func main() {  pwd,_ := os.Getwd() //获取当前目录  //获取文件或目录相关信息  fileInfoList,err := ioutil.ReadDir(pwd)  if err != nil {    log.Fatal(err)  }  fmt.Println(len(fileInfoList))   for i := range fileInfoList {    fmt.Println(fileI…
now := time.Now() year, month, day := now.Date() //fmt.Println(year, month, day) //2021 September 1 fmt.Println(year, uint(month), day) //2021 9 1 //获取月份最后一天 lastTime := now.AddDate(0, 1, -1) lastYear, lastMonth, lastDay := lastTime.Date() fmt.Printl…
1 package main 2 3 import ( 4 "fmt" 5 "net" 6 "net/http" 7 "strings" 8 ) 9 10 func main() { 11 addrs, err := net.InterfaceAddrs() //局域文件传输代码 12 if err != nil { 13 fmt.Println(err) 14 return 15 } 16 for _, address :=…
package main import ( "database/sql" "fmt" "log" "net/http" "time" _ "github.com/go-sql-driver/mysql" ) import "strings" func main() { http.HandleFunc("/getuser", getuser) s :…
中文长度,直接贴代码 package main import ( "fmt" "unicode/utf8" ) func main() { aa := "猪头" bb := " fmt.Println(utf8.RuneCountInString(aa),len(aa)) fmt.Println(utf8.RuneCountInString(bb),len(bb)) }…
直接展示代码 func md5sum(filepath string) (string, error) { f, err := os.Open(filepath) if err != nil { str1 := "Open err" return str1, err } defer f.Close() body, err := ioutil.ReadAll(f) if err != nil { str2 := "ioutil.ReadAll" return str2…
package main import ( "log" "net/http" ) func main() { http.HandleFunc("/", handler) http.ListenAndServe(":8081", nil) } func handler(w http.ResponseWriter, r *http.Request) { keys, ok := r.URL.Query()["key&quo…
ip:=this.Ctx.Request.RemoteAddr ip=ip[0:strings.LastIndex(ip, ":")]…
import ( "crypto/md5" "encoding/hex" ) //生成32位md5字串 func Md5(s string) string { h := md5.New() h.Write([]byte(s)) return hex.EncodeToString(h.Sum(nil)) }…
fmt.Println(reflect.TypeOf(var)) switch xxx.(type){ case int:.... case float32:... case float64:... case string:... } 对type的枚举,不能使用fallthrough,且float32和float64是两个不同的类型(没有单独的float类型),而int却包含int64…
package main import "runtime" import "log" func main() { test() } func test() { test2() } func test2(){ pc,file,line,ok := runtime.Caller() log.Println(pc) log.Println(file) log.Println(line) log.Println(ok) f := runtime.FuncForPC(pc)…
GO语言按照深度遍历文件 原创 2016年07月20日 09:45:19 标签: go语言 / 遍历 / string 1971 常规方法不使用pathfilepath包 go的filepath包 go语言提供了大量的包,基于这些包我们可以完成很多有意思的事情,本节我们就来看看如何利用go语言来遍历文件. 常规方法(不使用path/filepath包) 比较直观的方式是,按照某个目录递归的方式便利文件: func walkDir(dirpath string, depth int){ if de…
package main import ( "fmt" "log" "os/exec" "regexp" ) func main() { ww, err := exec.Command("CMD", "/C", " ping 126.com").Output() if err != nil { log.Fatal(err.Error()) } fmt.Println(…
package main import ( "fmt" "github.com/StackExchange/wmi" ) type Storage struct { Name string FileSystem string Total uint64 Free uint64 } type storageInfo struct { Name string Size uint64 FreeSpace uint64 FileSystem string } func get…
package main import ( "fmt" "syscall" "unsafe" ) var kernel = syscall.NewLazyDLL("Kernel32.dll") type memoryStatusEx struct { cbSize uint32 dwMemoryLoad uint32 ullTotalPhys uint64 // in bytes ullAvailPhys uint64 ull…
import ( "errors" // "fmt" "os" "os/exec" "path/filepath" "runtime" "strings" ) func GetCurrentPath() (string, error) { file, err := exec.LookPath(os.Args[0]) if err != nil { return &qu…