Closed tonyzzp closed 2 years ago
没有限制
这里如果stdin是true,stdout就读不到数据,从echo.exe来看,也没有收到任何数据。 如果stdout是false,就可以正常读到数据。
但是如果stdin设置为true,写完数据后马上close,stdout是可以正常读到返回的数据的。
我想要双向交互,好像不行啊。
local subprocess = require("bee.subprocess")
local process, err = subprocess.spawn({
"d:\\myprojects\\echo\\echo.exe",
stdin = true,
stdout = true,
})
-- process.stdin:write("hello server.\n")
-- process.stdin:close()
-- process:wait()
local all = process.stdout:read(50000)
print(all)
你需要用setvbuf或者flush,刷新下缓存
多谢。
subprocess必须先关闭stdin后才能从stdout读取数据吗。 可不可以交叉进行。