每個(gè)進(jìn)程都一定有進(jìn)程名字,例如我們運(yùn)行top
,進(jìn)程名就是“top”,如果是自定義的程序呢?
其實(shí)進(jìn)程名一般都是進(jìn)程參數(shù)的第一個(gè)字符串,在Go中可以這樣獲得進(jìn)程名。
package main
import (
"fmt"
"os"
)
func main() {
processName := os.Args[0]
fmt.Println(processName)
}
進(jìn)程的輸出結(jié)果如下。
root@87096bf68cb2:/go/src# go run process_name.go
/tmp/go-build650749614/command-line-arguments/_obj/exe/process_name
root@87096bf68cb2:/go/src# go build process_name.go
root@87096bf68cb2:/go/src# ./process_name
./process_name
是否稍稍有些意外,因?yàn)?code>go run會(huì)啟動(dòng)進(jìn)程重新編譯、鏈接和運(yùn)行程序,因此每次運(yùn)行的進(jìn)程名都不相同,而編譯出來的程序有明確的名字,所以它的進(jìn)程的名字都是一樣的。
知道這些以后,我們可以開始接觸接進(jìn)程的運(yùn)行參數(shù)。