go执行外部应用

Posted zzr-stdio

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go执行外部应用相关的知识,希望对你有一定的参考价值。

go执行外部应用

最近想将原来用asp.net mvc写的一个公司内部网站改用beego来写,但发现其中有一个功能是,能将加密的sqlite文件进行解密,因为这个解密是不能公开的,但有些同事需要查看这些sqlite文件的结构和数据 ,所以其中一个功能就是能够将上传上来的sqlite解密后,再返回给浏览器供下载下来查看,但是发现go中没有提供sqlite的解密包功能,故另寻它路,发现可以采用go来执行我写的解密命令行程序,将需要解密的工程当参数传进去,然后执行后,就是解密后的文件了,可以返回给浏览器供下载使用,以下是go执行外部程序的例子。

package main

import (
    "fmt"
    "os/exec"
    "io/ioutil"
)

func main(){
    cmd := exec.Command("Test.exe", "hello world")
    stdout, err := cmd.StdoutPipe()
    if err != nil{
        fmt.Println(err)
        return
    }
    defer stdout.Close()
    if err := cmd.Start(); err != nil{
        fmt.Println(err)
        return
    }
    opBytes, err := ioutil.ReadAll(stdout)
    if err != nil{
        fmt.Println(err)
        return
    }
    fmt.Println(string(opBytes))
}

以上是关于go执行外部应用的主要内容,如果未能解决你的问题,请参考以下文章

GO语言(二十五):管理依赖项(上)-

如何从片段外部清除/重置地图?

从外部片段内的 FragmentTabHost 的子片段添加新的选项菜单

android:当用户触摸片段外部时,我如何关闭片段?

执行代码时有时不显示对话框片段

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段