Для чтения алгоритм таков:
1. Открываем файл с флагами O_RDONLY | O_NONBLOCK
2. Ждём например select-ом когда можно будет его неблокирующе читать
3. Читаем
Вопрос. Что происходит после 1 пункта в ядре ОС? Оно читает с диска содержимое файла в какой-то свой внутренний буфер? Если да, то какого размера этот буфер? Размер буфера постоянный или нет?
Для записи алгоритм таков:
1. Открываем файл с флагами O_WRONLY | O_NONBLOCK
2. Ждём например select-ом когда можно будет в него неблокирующе писать
3. Пишем
Вопрос. Что происходит в пункте 3 в ядре ОС? Оно записывает данные в какой-то свой внутренний буфер и потом, уже после 3-го пункта, пишет данные на диск? Если да, то как узнать когда данные действительно записались на диск?