Что делает fflush? Многие пишут,что эта функция дает команду ОС сбросить содержимое буфера на диск. Но разве этим занимается ОС? Насколько я понял при работе с файлами буфер создает сама программа, например, функция fopen. В таблице syscall-ов linux я не нашел чего-то похожего на flush. При этом в пример приводят вот такой код:
#include <stdio.h>
int main() {
printf("Hello");
while(true);
return 0;
}
При запуске такой программы, hello напечатано не будет, если не добавить после printf вызов fflush(stdout). Однако вот такой код вполне нормально работает:
#include <stdio.h>
#include <unistd.h>
int main() {
char b[] = "Hello";
write(1,(void*)b,sizeof(b)-1);
while(true);
return 0;
}
Тут мы не используем высокоуровневые методы работы с stdout, а работаем на уровне syscall-ов. Я правильно понимаю что буферизация работы с файлами реализована средствами самой программы, а не ОС? И при вызове write, данные сразу будут записаны на диск?
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть одна Activity, в которой при клике на определенную кнопку выполняется AsyncTask, который в свою очередь делает запрос на API, чтобы получить токен...