从Lua函数是否有可能向C打开的文件描述符写入?

我有一个小的C程序调用一个Lua函数并将一个文件描述符发送给它, 是否可能从Lua写入到这个文件描述符?

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

点赞
stackoverflow用户1157444
stackoverflow用户1157444

我认为在调用 lua 函数之前将标准输出重定向到套接字 fd 可能会起作用,但更容易的方法是返回字符串并在 C 中编写它。

2012-01-23 20:11:22
stackoverflow用户2032681
stackoverflow用户2032681

请看 C 函数 fdopen()。

它接受一个文件描述符,然后返回一个流/FILE*。

如果你为 fdopen() 实现了一个 Lua C 扩展,以便返回一个 LuaStream,那么你就可以在结果 Lua Stream 上使用普通的 Lua io 调用。

比仅为想要执行的操作实现一次性函数更好。

请看 Lua 5.2.1 源代码的 liolib.c 中的 io_open,以了解创建 Lua Stream 的示例。

2013-02-01 13:31:32