如何解决与使用命令行上的文件名进行输入和输出的程序交互的最佳方法是什么?
| 我需要与一些期望传递输入或输出文件名的可执行文件交互:./helper in.txt out.txt
这样做的标准(最好是跨平台)方式是什么?
我可以在/tmp
目录中创建许多临时文件,但是我担心创建大量文件可能会引起一些问题。另外,我希望能够安装我的程序,而不必以后担心权限。
我也可以只针对Unix,并尝试使用管道等解决方案。但是,然后,我认为我将无法找到带有未命名管道的解决方案。
我的替代方法是将输入管道传递到stdin(我需要的所有可执行文件也都接受这种方式)并从stdout获取结果。但是,它们提供给stdout的输出都是不同的,我需要手工编写很多适配器以使其统一(通过文件的输出遵循相同的标准)。我不喜欢这样如何将程序锁定为几种格式。
解决方法
不一定有正确或错误的答案。读/写到stdin / out可能更干净,并且不占用磁盘空间。但是,只要安全地使用临时文件,也可以。具体来说,有关使您可以创建临时文件以供短期使用的功能,请参见
mktemp
和mkstemp
手册页。之后只需清理它们(unlink
),就可以使用和操作临时文件了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。