ПрограммированиеФорумОбщее

Что лучше выбрать для работы с файлами? (2 стр)

Страницы: 1 2
#15
23:19, 7 июля 2011

Конечно же через WinAPI:

1) Куча флагов, для разных ситуаций.
2) Проецируемые в память файлы.
3) Удобнее обрабатывать возможные ошибки.
4) Логично предположить, что в Виндовс эти функции использовать более правильно чем другие.
5) Кроссплатформенность, кроссплатформенность... до неё надо дожить сначала.

#16
0:30, 8 июля 2011

ХОБ-Гоблин
> Проецируемые в память файлы.
а это тут причем ???

#17
0:34, 8 июля 2011

Nomad
> CreateFileW, хочу заметить.
почему именно W я не понял ?? - кто то сказал что приложение юникодовое ?? тем более там условная компиляция от макросов настройках проекта зависит

#18
0:36, 8 июля 2011

asvp
> Ниже WinAPI нет других функции по работе с файлами

ну почему же можно напрямую к винчу обратится и вычитать файловую систему и файлы - это ещё быстрее бгг :)))))))

ЗЫ
в данной теме не советую канеш - эт я пошутил

#19
1:10, 8 июля 2011

fsmoke
Ниже есть, конечно - это режим ядра. Можно хоть свой драйвер написать - быстрее будет. Я провел черту для себя - самый низ это WinAPI (есть правда Rtl... функции), а ниже тока режим ядра. А туда я лезть не хочу.

Дополнение:
Есть правда еще один фокус. Н-р, функции WinAPI по работе с кучей работают через функции распределения виртуальной памяти тойже самой WinAPI. Если самому рулить кучей, то получается быстрее. Возможно и функции по работе с файлами работают через какие-нить функции той же WinAPI, но я не юзал.

#20
3:37, 8 июля 2011

fsmoke
> а это тут причем ???

Там нужен дескриптор от CreateFileW.

#21
5:02, 8 июля 2011

fsmoke
к слову, желательнее использовать везде *W, большая часть WinApi реализует только эти функции, а *A функции это обертки над *W с предварительной конвертацией в юникод

#22
8:38, 8 июля 2011

ХОБ-Гоблин
> к слову, желательнее использовать везде *W, большая часть WinApi реализует
> только эти функции, а *A функции это обертки над *W с предварительной
> конвертацией в юникод
Это интересно. Надо проюзать.

#23
16:00, 8 июля 2011

Спасибо всем за ответы!

#24
18:38, 8 июля 2011

>>и работай как с блоком данных в памяти. проще, удобней и тд...
Ага, про гранулярность аллокации памяти не забыл?

#25
19:11, 8 июля 2011

GiSberg
> если проект только под Виндовс то используй
> CreateFile
> CreateFileMapping
> MapViewOfFile
> GetFileSize
>
> и работай как с блоком данных в памяти. проще, удобней и тд...
Эти функции не позволяют увеличивать размер файла (т.е. дописывать его). Ну а "только при чтении" - точто надо. Бестрее чем ReadFile.

Hartmann
> Ага, про гранулярность аллокации памяти не забыл?
А это тут причем.

#26
21:34, 8 июля 2011

>>А это тут причем.
оффсет в MapViewOfFile сможешь ставить только по гранулярности памяти

#27
22:39, 8 июля 2011

GiSberg
> если проект только под Виндовс то используй
> CreateFile
> CreateFileMapping
> MapViewOfFile
> GetFileSize
>
> и работай как с блоком данных в памяти. проще, удобней и тд...

До тех пор когда адресное пространство не окажется полностью засрано этими удобными блоками.

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.