c - C 中的嵌入式 Lua 从 STDIN 获取输入

标签 c lua embed

我正在编写一个 C 应用程序,其中有一个嵌入式 lua 脚本。 Lua 脚本从 STDIN 获取输入。所以当我从 shell 运行脚本时,它就像这样:

lua myscript.lua < datafile*

我如何从 C 代码内部完成此操作?

谢谢。

最佳答案

对描述符 0 (stdin) 和 open(2) 返回的描述符使用 dup2(2) 系统调用 数据文件:

int fd = open("datafile", O_RDONLY);
dup2(fd, 0);
/* reading from stdin now is in fact reading from datafile */

当然,您需要在实际程序中进行一些错误检查。

要实现通配符的行为,您可能需要查看 readdir(3) 库函数。

关于c - C 中的嵌入式 Lua 从 STDIN 获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6596229/

相关文章:

创建 printf 的自定义版本

c不遵循程序运行流程

c - 如何通过 printf 将正数打印为负数

visual-studio - 如何引用 .cpp 文件而不将它们包含在 Visual Studio 的解决方案中?

lua - 在Lua中获取os.execute的输出

c - 如何确定变量的类型?

youtube - 嵌入 YouTube 视频 - 宽高比

javascript - 如何在mvc3中嵌入youtube视频?

javascript - 无法在 HTML 页面中嵌入谷歌趋势图

lua - 尝试在文件 :write 处索引本地 'file'(一个 nil 值)