linux - 将数据文件包装到 golang 应用程序并在 exec 中使用

标签 linux go

我想将数据文件 (~1MB) 打包到 golang 应用程序,然后在 os.exec 中使用该数据。该应用程序在 Linux 上运行。

如何在应用程序中定义数据,作为string[]byte、变量或Const?

应该在全局范围内定义,还是包装在 func 中?

如何将应用程序内存中的数据传递给已执行进程?

最佳答案

要将数据文件构建到您的程序中,您有多种选择。你是正确的,因为你可以手动将数据文件复制/粘贴到程序中作为类型 string[]byte 作为变量,但还有其他包/applications for go 已经为您处理了这个问题,它还可以最大限度地减少应用程序的内存占用。想到的一个例子是 go-bindata ( link to repo ),它就是这样做的。

至于在 os/exec 中使用文件,我假设您正在尝试使用文件路径或原始字符串将整个文件传递给程序。对于文件路径,您必须先将整个文件写入磁盘。如果您尝试将整个文件内容作为原始字符串传递,您仍然可以使用 go-bindata 或数据文件的 string 作为 argos/exec.Command 中。

附言- go-bindata 已经有一段时间没有看到更新了,所以如果您在使用它时遇到问题,我鼓励您寻找更活跃的分支或替代品。

关于linux - 将数据文件包装到 golang 应用程序并在 exec 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44734450/

相关文章:

linux - CentOS 7 中的 chromium-headless 安装路径

linux - '/usr/bin/ld : cannot find -lecore_input' but libecore_input. 所以在编译 Terminology 时存在

c - fork() 会创建别名吗?

input - 在 Go 中,使用递归扫描一行中的数字

go - 在 go 中读取 windows 属性

linux - 如何创建没有不必要空格的 CSV 文件

linux - 需要帮助从 Linux (ubuntu) 连接 MSSQL SERVER

datetime - 如何在 Go 中使用 GMT 格式获取当前日期和时间?

java - 尝试在 Go 中实现 Java Guava sets.difference

go - 如何打印整个 url.URL 结构?