我正在编写一个 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/