On 23/07/19 11:42, Stefano Garzarella wrote: > "If writable is TRUE, the mapped buffer may be modified, otherwise it is an > error to modify the mapped buffer. Modifications to the buffer are not visible > to other processes mapping the same file, and are not written back to the > file." > > I don't know what "error" means, but reading the second part I thought > the changes in that case were only visible at the current process.
My reading would be that the second part applies to the writable==TRUE case. In fact, the glib source code agrees: file->contents = (gchar *) mmap (NULL, file->length, writable ? PROT_READ|PROT_WRITE : PROT_READ, MAP_PRIVATE, fd, 0); meaning that we could after all just use writable == true. Paolo > I'll test it to understand better the behavior. If we can't touch it, then we > have to make a copy in these cases. > >> (We can't get out of this by just passing writable=true, because >> we definitely don't want to be writing back to the underlying file.) > Yes, I agree.