go - 如何在 Go 中执行一个程序并返回父进程?

标签 go operating-system

关闭。这个问题需要details or clarity .它目前不接受答案。












想改进这个问题?通过 editing this post 添加详细信息并澄清问题.

2年前关闭。




Improve this question




假设我想从程序中执行 Vim,打开 Vim,然后退出 vim 后返回 Go 程序,而不是退出整个进程。我将如何处理?有没有一种方法可以在 Go 中 fork 程序?我在搜索中找不到这个问题的答案。

最佳答案

使用标准 os/exec包裹。这是 documentation 中的一个基本示例:

package main

import (
    "bytes"
    "fmt"
    "log"
    "os/exec"
    "strings"
)

func main() {
    cmd := exec.Command("tr", "a-z", "A-Z")
    cmd.Stdin = strings.NewReader("some input")
    var out bytes.Buffer
    cmd.Stdout = &out
    err := cmd.Run()
    if err != nil {
        log.Fatal(err)
    }
    fmt.Printf("in all caps: %q\n", out.String())
}

一旦你有 Command , 调用Run执行它并等待它完成,这听起来像你需要的。

关于go - 如何在 Go 中执行一个程序并返回父进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61164513/

相关文章:

go - 单值上下文中的多值 reader.ReadString()

string - 如何在 Go 中将新字符分配给字符串?

operating-system - 消息队列和共享内存的区别?

operating-system - 操作系统是为特定处理器还是所有类型的处理器设计的?

go - 当 key 包含 (.) 点时引用 key 的值?

go - 在golang中将12小时格式时间转换为24小时格式时间

html - iron-ajax 与 polymer-starter-kit 一起出现行为不端之类的。它向与我期望的不同的 url 发送请求

c - 用fork用C语言写消费者和生产者代码?

支持操作系统重建和加载的用于开发的 Android 平板设备

c - 使用 "shmget"分配大内存块时,System V IPC 如何处理碎片?