【发布时间】:2020-02-13 02:27:01
【问题描述】:
我在这里寻找的是相当于 C 的argv[0]。
flag 包只允许访问命令行参数,但不能访问可执行文件名。
虽然可以使用Getpid() 获取该过程,但我还没有找到可以让我访问整个命令行的东西。 syscall 命令 GetCommandLine() 似乎只在 Windows 上可用。
【问题讨论】:
标签: go
我在这里寻找的是相当于 C 的argv[0]。
flag 包只允许访问命令行参数,但不能访问可执行文件名。
虽然可以使用Getpid() 获取该过程,但我还没有找到可以让我访问整个命令行的东西。 syscall 命令 GetCommandLine() 似乎只在 Windows 上可用。
【问题讨论】:
标签: go
C 中的传统 argv[0] 是 Go 中的 os.Args[0] 中的 available。 flags 包只处理切片os.Args[1:]
【讨论】:
更好的方法如下:
filename:=filepath.Base(os.Args[0])
这将只显示应用程序名称并为您删除路径。
【讨论】:
从 Go 1.8 开始,答案是 os.Executable()。与其他语言类似,也有os.Args[0]。一个重要的区别是os.Executable() 保证返回绝对路径。
【讨论】: