Skip to Content

Q: mmap() ?

А я вот извиняюсь, а Windows умеет mmap()-ать файлы с сетевого диска?

А макос?

Ну то есть у меня какое-то ощущение из прошлого, что нет, нельзя, но в доках такого ограничения не нашел.

Comments

Windows умеет. И compressed/encrypted тоже. EDIT: хотя насч

Windows умеет. И compressed/encrypted тоже.

EDIT: хотя насчет шифрованного файла с сетевого диска не уверен, не знаю кто в этом случае будет расшифровывать, сервер или клиент

В-общем, я подумал - и оставил старый код fallback-ом на слу

В-общем, я подумал - и оставил старый код fallback-ом на случай если вдруг не помэпалось.

Мало ли, NFS какой попадется или еще какая FS которая потребного для map() не делает.

Умеет, но для них не гарантируется когерентность.

Умеет, но для них не гарантируется когерентность.

Ну на когерентность мне плевать, мне RAW-файл прочесть в пам

Ну на когерентность мне плевать, мне RAW-файл прочесть в память не делая malloc(file.size())

Кроме когерентнлсти есть еще грабли с разрывом сетевого соед

Кроме когерентнлсти есть еще грабли с разрывом сетевого соединения, при котором получается AV вместо нормальных файловых/сетевых ошибок. Если нужно прочесть и забыть, то пользоваться можно, если надо долго держать mapping, то не стоит.

Прочесть и забыть. AV - это что? P.S. Недавно перебирал фо

Прочесть и забыть.

AV - это что?

P.S. Недавно перебирал фотки с Жомболока и мне кажется, что твой юзерпик именно отттуда :)

AV - access violation. GP fault, segmentation falt, etc - си

AV - access violation. GP fault, segmentation falt, etc - синонимы. В терминах виндовских ошибок это будет IN_PAGE_ERROR, как будто OS пытается читать страницу из page-файла, а ей не дают. Ловить о обрабатывать такие ошибки довольно утомительно. Поэтому я бы трижды подумал, прежде чем использовать file mapping вместо последовательного чтения файла кусками.

Юзерпик оттуда, это прямо твоя фотка. Могу поставить (c) :)

Ну и писал бы GPF :) В-общем, счастья не оказалось. Идея бы

Ну и писал бы GPF :)

В-общем, счастья не оказалось. Идея была - уйти от malloc(file.size()) и чтения туда (и, соответственно, фрагментации памяти), а прямо ковыряться в mmap, но выяснилось что (используемый т.е. чужой) парсер tiff-тегов так не умеет, а что-то в эту память пишет.

А счастье было так близко.

(C) ставить не надо, просто смотрю - знакомое что-то.....

P.S. нет желания скататься на Хамар-Дабан летом? Что-нибудь несложное, вроде Хангарула, чисто отдохнуть, рыбы половить и все такое.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <s> <i> <b> <blockquote>
  • Lines and paragraphs break automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Images can be added to this post.

More information about formatting options



.