如何在运行时获取我自己的程序名称?Go 相当于 C/C++ 的 argv[0] 是什么?对我来说,生成具有正确名称的用法很有用。
更新:添加了一些代码。
package main import ( "flag" "fmt" "os" ) func usage() { fmt.Fprintf(os.Stderr, "usage: myprog [inputfile]\n") flag.PrintDefaults() os.Exit(2) } func main() { flag.Usage = usage flag.Parse() args := flag.Args() if len(args) < 1 { fmt.Println("Input file is missing."); os.Exit(1); } fmt.Printf("opening %s\n", args[0]); // ... }
import "os" os.Args[0] // name of the command that it is running as os.Args[1] // first command line parameter, ...
参数在os包http://golang.org/pkg/os/#Variables中公开
os
如果您要进行参数处理,则flag包http://golang.org/pkg/flag是首选方式。专门针对您的情况flag.Usage
flag
flag.Usage
更新您给出的示例:
func usage() { fmt.Fprintf(os.Stderr, "usage: %s [inputfile]\n", os.Args[0]) flag.PrintDefaults() os.Exit(2) }
应该做的伎俩