栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

执行外部程序 - 理解Linux进程

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

执行外部程序 - 理解Linux进程


### 执行(Exec)外部程序

这是来自GoByExample的例子,代码在[https://gobyexample.com/execing-processes](https://gobyexample.com/execing-processes)。

把新程序加载到自己的内存。

与Spawn不同,执行外部程序并不会返回到原进程中,也就是让外部程序完全取代本进程。

### 代码实现

~~~
package main

import "syscall"
import "os"
import "os/exec"

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)
}
}
~~~

### 运行结果

~~~
$ go run execing-processes.go
total 16
drwxr-xr-x 4 mark 136B Oct 3 16:29 .
drwxr-xr-x 91 mark 3.0K Oct 3 12:50 ..
-rw-r--r-- 1 mark 1.3K Oct 3 16:28 execing-processes.go
~~~

### 归纳总结

如果你的程序就是用来执行外部程序的,例如后面提到的项目实例Run,那使用`syscall.Exec`执行外部程序就最合适了。注意调用该函数后,本进程后面的代码将不可能再执行了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/213692.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号