开发者

Embedded Lua in C take input from STDIN

开发者 https://www.devze.com 2023-03-17 21:44 出处:网络
I\'m writing a C app that has an embedded lua script in it. 开发者_如何学C The Lua script takes input from STDIN. So when I\'m running the script from the shell it\'s like thus:

I'm writing a C app that has an embedded lua script in it. 开发者_如何学C The Lua script takes input from STDIN. So when I'm running the script from the shell it's like thus:

lua myscript.lua < datafile*

How do I accomplish this from inside the C code?

Thank you.


Use the dup2(2) system call on descriptor 0 (stdin) and on the descriptor returned by open(2) on datafile:

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

Of course, you need some error-checking in a real-world program.

To implement the behaviour of wildcarding, you may want to look at the readdir(3) library function.


Have you tried to just run your script unmodified (i.e. use io.stdin etc.)? Unless you're doing something fancy on C side, it should work out of the box.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号