我正在编写一个包含嵌入式lua脚本的C应用程序。 Lua脚本从STDIN获取输入。因此,当我从shell运行脚本时,就像这样:
lua myscript.lua < datafile*
如何从C代码中完成此操作?
谢谢。
答案 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方面做一些奇特的事情,否则它应该是开箱即用的。