execing process _ golang
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 : ....
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。