Открываю файл системным вызовом open() и получаю к нему доступ с помощью mmap(). Так как оставшаяся в странице память забивается нулями, я могу считать данные циклом вроде
for (; *c; c++)
{
// сделать что-то с памятью по адресу c
}
Всё бы хорошо, но вот как быть с ситуацией, когда размер файла совпадает с размером страницы? Тогда нулей для того, чтобы выйти из цикла, не будет. Пытался mmap-ить на один байт больше, но попытка доступа к этой памяти приводит к SIGBUS, из которого не получается выйти из цикла, в результате чего программа зависает.
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от kss
Ответ на:
комментарий
от RommeDeSerieux
Ответ на:
комментарий
от RommeDeSerieux
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Обработка mmap-функции драйвером устройства (2023)
- Форум Cоответствие WinApi и Linux Syscalls (2010)
- Форум Помогите настроить Эмулятор ДОСА (1999)
- Форум Чтение файлов на ассемблере в AT&T-синтаксисе (2010)
- Форум KDE 3.5 жрет память (2008)
- Форум Проблема с FIFO (именованые каналы) (2005)
- Форум libc, системные вызовы и лицензия GPL (2015)
- Форум [mmap][bus error]Нет свободного места на файловой системе (2011)
- Новости strace 4.22 (2018)
- Форум Приложение НАСТРОЙКИ зависает (2024)