Não há nada que forneça garantias de que você não copiará uma "gravação parcial" (do ponto de vista do seu aplicativo) em todos os casos, seja em um deles:
- colaboração com esse outro processo (por exemplo, um método para você informar a liberação e parar / reiniciar suas gravações)
- usando um sistema "real" transacional (banco de dados) que permite tirar instantâneos / backups / dumps consistentes
Às vezes, isso pode ser contornado, se o arquivo em questão estiver estritamente formatado. O último registro, se o arquivo foi copiado enquanto gravações não-atômicas estavam em andamento, será inconsistente ou parcial, e seu aplicativo de processamento pode detectar isso, ou simplesmente ignorar o último registro sistematicamente.
(Mesmo se o aplicativo sempre gravar seus registros com uma única chamada write
ou equivalente, pode acontecer que o aplicativo seja interrompido durante a chamada de gravação e que apenas parte da gravação tenha sido realmente processada.)