Usando el mismo archivo para stdin y stdout con redirección
Estoy escribiendo una aplicación que actúa como un filtro: lee la entrada de un archivo (stdin), procesa y escribe la salida en otro archivo (stdout). El archivo de entrada se lee completamente antes de que la aplicación comience a escribir el archivo de salida.
Como estoy usando stdin y stdout, puedo ejecutarlo así:
$ ./myprog <file1.txt >file2.txt
Funciona bien, pero si trato de usar el mismo archivo como entrada y salida (es decir, leer desde un archivo y escribir en el mismo archivo), así:
$ ./myprog <file.txt >file.txt
limpiafile.txt
antes de que el programa tenga la oportunidad de leerlo.
¿Hay alguna manera de que pueda hacer algo como esto en una línea de comando en Unix?