Я пытаюсь контролировать файл, который я создаю, когда содержимое изменяется с 0
на 1
. Этот код создает файл и отображает его в порядке, затем я вращаюсь, ожидая, пока содержимое *map
изменится с '0'
на '1'
.Можно ли записать в файл mmap'd без получения ошибки шины
Однако, как только я запустил echo 1 > file.dat
, код выходит из строя с помощью Bus Error
.
Я предполагаю, что это потому, что новый файл создается с помощью эха (или чего-то еще, что я пытаюсь), и mmap больше не указывает на что-то важное. Есть ли способ сделать эту работу?
int fd = open(filename.c_str(), O_RDWR | O_CREAT | O_TRUNC, (mode_t)0600);
write(fd, "0", 1)
char* map = static_cast<char*>(mmap(0, 1, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0));
@MichaWiedenmann: lol "эмоциональный" ?? –
Ну, я думаю, это отражается на потраченных усилиях. –
Не могли бы вы, по крайней мере, установить образец, например. [coliru] (http://coliru.stacked-crooked.com/), который воспроизводит проблему. –