gpt4 book ai didi

linux - 使用 minicom 下载的二进制文件被截断

转载 作者:太空宇宙 更新时间:2023-11-04 05:16:53 30 4
gpt4 key购买 nike

我正在 Linux 上使用 minicom 与 PDP-11 通信,并且我正在使用描述的 shell 脚本 here下载二进制文件。我看到的是“pv”显示的进度条显示下载几乎是立即进行的,而不是串行线路运行的 9600 bps(它是 Linux 端的真正串行端口,而不是 USB 串行加密狗)。

它可以工作,但随着下载量变大,结尾就会被切断。如果我在脚本末尾增加 sleep() 时间,我可以让它再次工作。

在我看来,输出正在内核中缓冲,如果脚本(不是 pv 程序,奇怪的是)退出得太早,那么缓冲区就会被刷新。

我尝试编写自己的小 C 程序来代替 shell 脚本和 pv,认为通过使用 setvbuf() 设置 _IONBF 我可以解决这个问题。结果相同。

关于如何在 pv 中或通过编写自己的程序关闭此缓冲有什么想法吗?谢谢。

最佳答案

调查 minicom 的源代码表明,当子程序返回时,它确实会刷新缓冲区,因此有必要让该程序等待。

我从未找到关闭缓冲的方法,但我确实找到了 tcdrain() 函数,它允许我的程序等到数据传输后再退出。

关于linux - 使用 minicom 下载的二进制文件被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47913710/

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