In the previous example we looked at spawning external processes. We do this when we need an external process accessible to running Go process. Sometimes we just want to completely replace the current Go process with another one. To do this we'll use Go's implementation of classic exec function
package main import ( "os" "os/exec" "syscall" ) func main() { binary, lookErr := exec.LookPath("ls") if lookErr != nil { panic(lookErr) } args := []string{"ls", "-a", "-l", "-h"} env := os.Environ() execErr := syscall.Exec(binary, args, env) if execErr != nil { panic(execErr) } }
total 3656 drwxr-xr-x 17 xjk staff 578B Apr 1 13:19 . drwxr-xr-x+ 30 xjk staff 1.0K Mar 6 14:00 .. -rw-r--r--@ 1 xjk staff 6.0K Mar 27 11:21 .DS_Store -rw-r--r-- 1 xjk staff 838B Mar 30 13:38 Reading.go -rw-r--r-- 1 xjk staff 553B Mar 27 13:12 URL.go -rw-r--r-- 1 xjk staff 598B Mar 30 13:45 Writing.go -rw-r--r-- 1 xjk staff 402B Mar 30 13:23 base64.go -rw-r--r-- 1 xjk staff 447B Mar 31 13:28 commandLineFlags.go -rwxr-xr-x 1 xjk staff 1.7M Mar 31 13:21 commonLineArgument -rw-r--r-- 1 xjk staff 209B Mar 31 13:20 commonLineArgument.go -rw-r--r-- 1 xjk staff 261B Apr 1 13:02 environmentVariables.go -rw-r--r-- 1 xjk staff 303B Apr 1 13:22 execingProcess.go -rw-r--r-- 1 xjk staff 298B Mar 31 13:15 lineFilters.go -rw-r--r-- 1 xjk staff 384B Mar 27 13:04 number_parsing.go -rw-r--r-- 1 xjk staff 189B Mar 27 13:18 sha.go -rw-r--r-- 1 xjk staff 720B Apr 1 13:15 spawningProcess.go -rwxr-xr-x 1 xjk staff 243B Mar 27 11:25 urllib001.py
总结 :
1 : ....
有疑问加站长微信联系(非本文作者)