package main import ( "fmt" "os" ) func main() { fmt.Println(os.Executable()) fmt.Println(os.Getwd()) }
zzh@ZZHPC:~/zd/Github/ztest$ go run main.go /tmp/go-build2963213184/b001/exe/main <nil> /home/zzh/zd/Github/ztest <nil>
zzh@ZZHPC:~/zd/Github/ztest$ tree . ├── config │ └── config.go ├── go.mod └── main.go 1 directory, 3 files
package config import ( "fmt" "os" ) func LoadConfig() { fmt.Println(os.Executable()) wd, _ := os.Getwd() fmt.Printf("current directory: %s", wd + "/config") }
package main import ( "ztest/config" ) func main() { config.LoadConfig() }
zzh@ZZHPC:~/zd/Github/ztest$ go run main.go /tmp/go-build3485574147/b001/exe/main <nil> current directory: /home/zzh/zd/Github/ztest/config
os.Getwd()的返回结果依赖于在哪个目录下运行程序,所以如果不知道source file的位置与working directory的关系还是不能根据os.Getwd()的返回值来得到current directory:
func LoadConfig() { wd, _ := os.Getwd() fmt.Printf("working directory: %s\n", wd) }
zzh@ZZHPC:/zdata/Github/greenlight$ go run ./test/api working directory: /zdata/Github/greenlight zzh@ZZHPC:/zdata/Github/greenlight$ cd test/api zzh@ZZHPC:/zdata/Github/greenlight/test/api$ go run main.go working directory: /zdata/Github/greenlight/test/api
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2023-11-20 Github Actions
2023-11-20 PostgreSQL - Transaction Isolation Level
2023-11-20 MySQL - Transaction Isolation Levels
2023-11-20 ACID - Isolation Levels