ulidtko 24.10.2012 15:52

Пиздец, это ж надо было придумать настолько ебнутое апи.
http://msdn.microsoft.com/en-us/library/...

Кто-нибудь понимает все эти FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE флаги? Че за ебота вообще в первой табличке изображена?

1. generatorglukoff 24.10.2012 15:54 Воркота

там же всё написано блядь

2. generatorglukoffgeneratorglukoff /1 24.10.2012 15:54 Воркота

The following table illustrates the valid combinations of two calls to CreateFile using various access modes and sharing modes (dwDesiredAccess, dwShareMode respectively). It does not matter in which order the CreateFile calls are made. However, any subsequent file I/O operations on each file handle will still be constrained by the current access and sharing modes associated with that particular file handle.

засунь в гуглотранслейт штоле

3. violetta 24.10.2012 15:56 Time machine

Норм сделано. Защита от распидорашивания.

4. ulidtkogeneratorglukoff /2 24.10.2012 15:57

в табличке нихуя нет про FILE_SHARE_DELETE, умник. А экстраполировать у меня не получается.

> When a process uses CreateFile to attempt to open a file that has already been opened in a sharing mode (dwShareMode set to a valid nonzero value), the system compares the requested access and sharing modes to those specified when the file was opened. If you specify an access or sharing mode that conflicts with the modes specified in the previous call, CreateFile fails.

> access or sharing mode that conflicts with the modes...
> conflicts

что это значит, нахуй?

5. generatorglukoffulidtko /4 24.10.2012 15:59 Воркота

ты ваще знаешь что-такое memory mapped files?

6. ulidtkogeneratorglukoff /5 24.10.2012 16:03

ну ващето знаю, man mmap читал, desu

7. ulidtkoulidtko /6 24.10.2012 16:03

а под шиндовсом что-то похожее давно-давно на делфях делал. А что?

8. ulidtkogeneratorglukoff /5 24.10.2012 16:04

каким хуем это здесь релевантно?

9. generatorglukoffulidtko /8 24.10.2012 16:04 Воркота

никаким, я не дочитал:
An application also uses CreateFile to specify whether it wants to share the file for reading, writing, both, or neither. This is known as the sharing mode. An open file that is not shared (dwShareMode set to zero) cannot be opened again, either by the application that opened it or by another application, until its handle has been closed. This is also referred to as exclusive access.

10. generatorglukoffgeneratorglukoff /9 24.10.2012 16:05 Воркота

короче, в спермосистеме у тебя доступ к файлу исклюзивный, если ты не указал иного

11. ulidtkogeneratorglukoff /9 24.10.2012 16:09

у меня, короче, ERROR_SHARING_VIOLATION вылазит на вызове GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, CREATE_NEW | CREATE_ALWAYS. При этом файл ничем не открыт другим, вроде. Ну то есть, это первый вызов на существующем файле.

12. ulidtkogeneratorglukoff /10 24.10.2012 16:10

я запрашиваю максимум шаринга, а оно мне — хуй.

13. generatorglukoffulidtko /11 24.10.2012 16:11 Воркота

CREATE_NEW | CREATE_ALWAYS ?
ты уверен что так можно на существующем файле?

14. ulidtkogeneratorglukoff /13 24.10.2012 16:11

да вот хуй знает, код не мой...

15. generatorglukoffulidtko /14 24.10.2012 16:13 Воркота

попробуй OPEN_ALWAYS | CREATE_ALWAYS
алсо выкинь FILE_SHARE_* и тоже попробуй

Do you really want to delete ?