什么是相当于argv ?
我怎样才能在运行时获得我自己的程序的名字? 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
如果你要做参数处理, flag
包http://golang.org/pkg/flag是首选的方法。; 特别为你的情况flag.Usage
更新你给的例子:
func usage() { fmt.Fprintf(os.Stderr, "usage: %s [inputfile]\n", os.Args[0]) flag.PrintDefaults() os.Exit(2) }
应该做的伎俩
使用os包中的os.Args[0]
package main import "os" func main() { println("I am ", os.Args[0]) }