ZhangZhihui's Blog  

 

复制代码
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

 

posted on   ZhangZhihuiAAA  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!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
 
点击右上角即可分享
微信分享提示