如何在执行中获取执行代码的文件名?
问题描述:
说我有一个文件:如何在执行中获取执行代码的文件名?
i_want_this_name.go:
package main
func main(){
filename := some_func() // should be "i_want_this_name"
}
我如何去得到执行代码的文件的名称?
答
命令的名称可以在os.Args[0]
发现,如文档中国the os package:
var Args []string
参数数量保持命令行参数,从程序名。
要使用它,请执行下列操作:
package main
import "os"
func main(){
filename := os.Args[0]
}
答
这应该为你工作:
package main
import (
"fmt"
"runtime"
)
func main() {
_, fileName, lineNum, _ := runtime.Caller(0)
fmt.Printf("%s: %d\n", fileName, lineNum)
}
http://play.golang.org/p/3T8fr_Hist – plusmid