Liberação do conceito de E / S x sincronização

Eu me deparei com esses dois termos e minha compreensão deles parece se sobrepor. Flush é usado com buffers e sync é usado para falar sobre alterações persistentes de arquivo em disco.

Em C, fflush (stdin) garante que o buffer seja limpo. E fsync para persistir altera o arquivo para o disco.

Se esses conceitos não forem definidos universalmente, preferiria uma explicação linux, java.

Encontrei um post relacionado, mas o ir realmente não responde à minha pergunta.Realmente force a sincronização / liberação de arquivos em Java

questionAnswers(1)

yourAnswerToTheQuestion