런타임에 내 프로그램의 이름을 어떻게 얻을 수 있습니까? 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]);
// ...
}
정답은
—
fiorix
os.Args[]
아닙니다 flag.Args()
. 플래그 패키지는와 같은 명령 줄 인수를 구문 분석하기위한 -this -that
것이며 flag.Args()
구문 분석되지 않은 나머지 인수를 반환합니다. 여기에 예가 있습니다 : play.golang.org/p/_YtTcqLWnl
flag.Args()
여기 에서 길이를 감지하는 대신 사용할 수 있습니다flag.NArg()