Os dados de leitura são (diretamente) lidos do cache apenas se já estiverem lá. Isso implica que os dados em cache foram acessados anteriormente por um processo e mantidos em cache. Não há nenhuma chamada de sistema ou qualquer método para um processo saber se algum dado a ser lido já está no cache ou não.
Por outro lado, um processo pode selecionar se deseja que os dados gravados sejam armazenados imediatamente no disco ou somente após um atraso variável, que é o caso geral. Isso é feito usando o sinalizador O_SYNC ao abrir o arquivo.
Existe também o sinalizador O_DIRECT que, quando suportado, força todos os I / Os a contornar o cache de leitura e gravação e vai diretamente para o disco.
Por fim, o próprio disco rígido é livre para implementar seu próprio cache, assim, mesmo depois que uma chamada de gravação síncrona tiver retornado, não há dados de garantia já existentes nos discos.