Flush fopen () 'ed arquivos abertos no modo de atualização, entre operações de leitura e gravação. Flushing explícito necessário?

Eu li isso sobre a troca entre as operações de leitura e gravação (e vice-versa) para arquivos abertos para atualização usandofopen() (LIGAÇÃO)

"Para arquivos abertos para atualização (aqueles que incluem um sinal" + "), nos quais são permitidas operações de entrada e saída, o fluxo deve ser liberado (fflush) ou reposicionado (fseek, fsetpos, rewind) entre uma operação de gravação seguida por uma operação de leitura ou de leitura que não tenha atingido o fim de arquivo seguido de uma operação de escrita. "

Há duas coisas mencionadas aqui que eu gostaria de destacar

o fluxo deve ser liberado (fflush) ou reposicionado (fseek, fsetpos, rewind)entre uma operação de gravação seguida por uma operação de leituraou uma operação de leitura que não atingiu o fim do arquivo seguido por uma operação de escrita.

1) Em relação ao primeiro ponto, nósexplicitamente precisa flush entre uma operação de gravação e leitura.Suponho, suponha que se pretende gravar em um novo arquivo, e depois lê-lo de volta.Neste caso, usandofseek() ourewind() para chegar ao início do arquivo depois que a escrita faz sentido, e como um efeito colateral ele irá liberar o buffer. Mas o que eu quero saber é, o que aconteceria, se nós estamos atualizando / sobrescrevendo a primeira parte de um já arquivo existente com novos dados, mas uma vez feito, queremosimediatamente começar a ler os dados antigos restantes daquele pontoNós precisamos usar algo comofseek(pFile,0,SEEK_CUR) para liberar o buffer para owrite-read transição e, ao mesmo tempo, não altera a posição do ponteiro do arquivo? A mesma confusão surge do segundo cenário também, quando queremos ler a primeira metade de um arquivo, eimediatamente depois disso quero começar a escrever lá. Por favor responda isso.

2) A segunda parte sobrereading operation which did not reach the end-of-file parece implicar que, se uma operação de leitura atinge o fim do arquivo e pretendemos escrever depois disso, não precisamos que o buffer seja liberado para isso.read-write Você pode confirmar que é isso que significa?write-read necessidades de transição flushing e nãoread-write transição, especialmente se a leitura atingiu o fim do arquivo?

questionAnswers(1)

yourAnswerToTheQuestion