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

时间:2011-07-06 12:17:54

标签: c lua embed

我正在编写一个包含嵌入式lua脚本的C应用程序。 Lua脚本从STDIN获取输入。因此,当我从shell运行脚本时,就像这样:

lua myscript.lua < datafile*

如何从C代码中完成此操作?

谢谢。

2 个答案:

答案 0 :(得分:1)

在描述符dup2(2)(stdin)上使用0系统调用,在open(2)上使用datafile返回的描述符:

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

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

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

答案 1 :(得分:0)

您是否尝试过不修改脚本(即使用io.stdin等)?除非你在C方面做一些奇特的事情,否则它应该是开箱即用的。