【发布时间】:2010-10-09 19:01:23
【问题描述】:
我正在编写一个类似于过滤器的应用程序:它从文件 (stdin) 读取输入、处理并将输出写入另一个文件 (stdout)。在应用程序开始写入输出文件之前,输入文件被完全读取。
由于我使用的是标准输入和标准输出,所以我可以运行是这样的:
$ ./myprog <file1.txt >file2.txt
它工作正常,但如果我尝试使用相同的文件作为输入和输出(即:从一个文件中读取,并写入同一个文件),像这样:
$ ./myprog <file.txt >file.txt
它在程序有机会读取它之前清除file.txt。
有什么方法可以在 Unix 的命令行中做这样的事情吗?
【问题讨论】: