gpt4 book ai didi

process - 父进程无法正确写入lua子进程stdin

转载 作者:行者123 更新时间:2023-12-03 04:04:29 28 4
gpt4 key购买 nike

我有一个名为file.dart的dart程序,如下所示:

import 'dart:io';
import 'dart:convert';

main() {
final file = Directory.current.path + '/file.lua';

Process.start('lua', [file]).then((Process process) {
print('opened process');
process.stdout.pipe(stdout);
process.stdin.add([4]);
process.stdin.flush().then((blah) => print('flushed'));
});
}

我有一个lua程序,名为file.lua,如下所示:
print('starting to read')
local data = io.stdin:read()
print('i read it ', data)

当我运行 Dart 程序时,会发生以下情况:
$ dart file.dart 
opened process
flushed
starting to read

然后它就永远坐在那里lua读取被阻塞,并且它从不拾取由dart进程写入的字节。

我推迟了 Dart 处理的过程,以便它写入并在第二秒后刷新。运行的输出是
$ dart file.dart 
opened process
starting to read
flushed

但它仍然永远挂断。

所以我有两个问题:

1)lua进程为什么不接 Dart 进程写的字节?

2)有没有一种 super 简单的方法可以使lua不受阻塞地读取?这样lua就会轮询而不是阻塞。

请在回答时输入您要回答的问题的编号。谢谢!

最佳答案

我通过在传输结束时发送'\ n \或换行字节来解决此问题!

关于process - 父进程无法正确写入lua子进程stdin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51196623/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com