所以我的问题是,如何才能将仅输出到指定文件的程序转换为使用stdout?另外,补充问题是:我如何欺骗输入文件中需要从stdin读取的程序?
这是不可能的,因为程序可能想要在输出中来回寻找?
顺便提一下,Perl Audio Converter总是使用中间wav文件来回避这个问题,这意味着它永远不会并行解码和编码,即使对于支持它的格式也是如此.
PS:是的,有一个原因我不想只使用Perl Audio Converter,但这与问题无关.
解决方法 在linux上,您可以将/ proc / self / fd / 1作为“文件”输出.这应该适用于任何不试图在输出中寻求的程序.
一些程序确实在输出中寻找(例如,一旦解码完成就在文件的开头写入摘要信息),并且这种搜索将失败而不是真实文件.
如果程序检查fseek或lseek的返回值(应该如此),程序可能会返回错误.如果没有,它可能会成功退出,但会产生错误的输出(例如,开头有错误的摘要信息,最后有额外的“垃圾”).
总结以上是内存溢出为你收集整理的linux – 如何管道只能写入文件(而不是STDOUT)的程序输出?全部内容,希望文章能够帮你解决linux – 如何管道只能写入文件(而不是STDOUT)的程序输出?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)