把Lua嵌入到C中,从标准输入流(STDIN)获取输入。

我正在编写一个嵌入了 Lua 脚本的 C 应用程序。Lua 脚本从 STDIN 获取输入。因此,当我从 shell 运行脚本时,它是这样的:

lua myscript.lua < datafile*

如何在 C 代码内实现这一点?

谢谢。

原文链接 https://stackoverflow.com/questions/6596229

点赞
stackoverflow用户265804
stackoverflow用户265804

使用 dup2(2) 系统调用在描述符0(标准输入)和open(2)datafile 上返回的描述符上:

int fd = open("datafile", O_RDONLY);
dup2(fd, 0);
/* 现在从标准输入读取实际上读取自 datafile */

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

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

2011-07-06 12:22:43
stackoverflow用户6236
stackoverflow用户6236

你尝试过不修改你的脚本直接运行它吗(即使用 io.stdin 等)?除非你在 C 端做了一些花哨的事情,否则它应该可以直接使用。

2011-07-06 16:27:38