syby119 2020-07-06 16:51 采纳率: 0%
浏览 140
已结题

windows命令行是否有像linux命令行中stdbuf之类的命令

我想将pipe的全缓冲变成行缓冲

具体来说,我在写一个a.php,要调用一个a.exe,假设两个脚本都在一个文件夹下。
我通过popen的方法异步执行a.exe。

// a.exe的输出结果输入到管道中,$file为管道句柄
$file = popen("./a.exe", "r");
while (!feof($file)) {
    echo fgets($file);
}

但这样会导致a.exe只有输出4kb后,fgets才能拿到数据。
a.exe执行很慢,1分钟的数据才够4kb,体验很差。

我想将让./a.exe只要输出一行就刷出来。在linux下,我可以通过stdbuf实现。

// a.exe的输出结果输入到管道中,$file为管道句柄
$file = popen("stdbuf -oL ./a.exe", "r");
while (!feof($file)) {
    echo fgets($file);
}

谁来告诉我在windows下我该怎么写。

  • 写回答

2条回答 默认 最新

  • 浴火_凤凰 2020-07-06 17:17
    关注

    PHP不就是运行在Linux上面的吗?

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料