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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta