Короче, Линус сказал, что O_DIRECT - это плохо и неправильно
(http://lkml.org/lkml/2007/1/10/233), посему у меня вопрос: как это
делать правильно сэмулировать на posix_fadvise? Требуется сделать так,
чтобы ядро НЕ кэшировало файл при его чтении.
Следующий код не работает:
if ((fd_in = open64(argv[1], O_RDONLY | O_LARGEFILE)) == -1) {
printf("Error: source file can't be open\n");
perror("open() ");
return 3;
}
posix_fadvise(fd_in, 0, filesize(argv[1]), POSIX_FADV_NOREUSE);
Далее файл читается в память, но ядро всё равно забивает пямять его
кэшем.
Зато работает следующий код:
if ((fd_in = open64(argv[1], O_RDONLY | O_LARGEFILE | O_DIRECT)) == -1) {
printf("Error: source file can't be open\n");
perror("open() ");
return 3;
}
(filesize можно заменить на 0 на ядрах > 2.6.6)

Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от birdie

Ответ на:
комментарий
от birdie
Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от birdie
Ответ на:
комментарий
от birdie

Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от birdie

Ответ на:
комментарий
от birdie
Ответ на:
комментарий
от fghj
Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от fghj

Ответ на:
комментарий
от birdie

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от birdie


Ответ на:
комментарий
от birdie

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от birdie

Ответ на:
комментарий
от tailgunner

Ответ на:
комментарий
от birdie

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум ftruncate64(): Invalid argument, Error code: 22 (2012)
- Форум OpenAL+MinGW32 - вывод звука под Windows не работает. (2010)
- Форум [c][perl?] exec (2008)
- Форум unicode and C: как это работает? (2007)
- Форум маленькая програмка чтобы вытащить числа из лога (2009)
- Форум Копирование фрагмента файла - учебная программа (2015)
- Форум Не могу разобраться с ошибкой сегментирования (2017)
- Форум Не работает чтение с web-камеры (v4l2) (2024)
- Форум Простой вопрос насчёт списков для профессионалов . (2014)
- Форум QT + CUDA (2011)