Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 将文件导入stdin并保持活动状态,等待新数据_Unix_Pipe - Fatal编程技术网

Unix 将文件导入stdin并保持活动状态,等待新数据

Unix 将文件导入stdin并保持活动状态,等待新数据,unix,pipe,Unix,Pipe,我是UNIX管道的半新手,如果我在这里问任何明显的问题,我深表歉意。我正在使用一个名为的程序从视频文件中获取隐藏的字幕。它可以选择从stdin接收文件,如果我执行以下操作,效果会非常好: ./ccextractor -stdin < myvideofile.wtv 应该可以工作——但它根本不处理视频的任何部分(至少它应该可以像前面的命令一样工作并解析现有数据)。我想我应该退一步,用一个简单的猫: cat myvideofile.wtv | ./ccextractor -stdin 这也

我是UNIX管道的半新手,如果我在这里问任何明显的问题,我深表歉意。我正在使用一个名为的程序从视频文件中获取隐藏的字幕。它可以选择从stdin接收文件,如果我执行以下操作,效果会非常好:

./ccextractor -stdin < myvideofile.wtv
应该可以工作——但它根本不处理视频的任何部分(至少它应该可以像前面的命令一样工作并解析现有数据)。我想我应该退一步,用一个简单的

cat myvideofile.wtv | ./ccextractor -stdin

这也不管用。我相信第一个和第三个命令应该大致相同,但事实显然并非如此。区别是什么,我如何才能让它工作?

使用
tail
方法应该可以工作,但是要确保写入视频文件的内容都是定期刷新的。在这种情况下,我实际上是在使用一个完整的文件,只是为了证明这个概念。tail命令应该将整个文件导入
ccextractor
,对吗?正确。
ccextractor
是处理流式数据还是缓冲其输出?我不确定到底是什么导致了这种差异。您的cat尝试消除了刷新和阻塞读取的任何可能性。无论哪种方式,Stdin都将是一条流。使用Cextractor上的strace,尝试查看管道中的内容,以防出现问题?
cat myvideofile.wtv | ./ccextractor -stdin