Привет)
Что заюзать для работы с бинарными файлами:
std::ifstream, std::ofstream
или виндоусовские CreateFile(), ReadFile(), WriteFile()?
Если проект только для windows.
Что у профессионалов, подскажите, пожалуйста?
да пофиг если честно на самом деле все есть апи функции в конечном итоге CreateFile(), ReadFile(), WriteFile() - просто все остальное это удобные обвязки
Чем не нравятся fopen/fread/fwrite ?
0iStalker
> fopen/fread/fwrite
+1
0iStalker
Абсолютно идентичны *File-функциям из API.
AloneR
CreateFileW, хочу заметить.
Немного нефтему вопрос:
Не вдуплился как win-api-шными функциями эмулировать ftell и fseek ?
Nomad
> CreateFileW
Это препроцессор сам подставит, если в проекте юникод.
ksacvet777
> Не вдуплился как win-api-шными функциями эмулировать ftell и fseek ?
SetFilePointer(Ex)
Nomad
> Абсолютно идентичны *File-функциям из API.
А как же режим "t" с трансляцией перевода строк?
WinAPI функции работают только с байтовыми данными (т.е. им начихать текст это или число).
Функции ввода/вывода CRT в текстовом режиме сначала преобразуют (формитируют), а потом обращаются к WinAPI.
ИМХО:
WinAPI:
1. Ниже WinAPI нет других функции по работе с файлами -> быстрая работа с файлами.
2. Формирование текста, чисел и записи в файл можно организовать самому - этот код будет оптимизирован (если разрешено).
IO CRT:
1. Быстрое написание кода для работы с файлами, но не факт что быстрая.
2. Функции CRT, возможно, универсальны и не оптимизированы.
3. (Добавление) Функции кроссплатформенные.
Если переносить потом на какой-нибудь mac, то лучше CRT. Меньше головняков.
TirexiK
> Если переносить потом на какой-нибудь mac, то лучше CRT. Меньше головняков.
Согласен. Можно добавить 3 пунктом.
asvp
> 2. Функции CRT, возможно, универсальны и не оптимизированы.
Я бы переживал насчет этого меньше всего, - самое слабое е звено во всей этой бодяге - HDD, и как бы криво не был реализован CRT, на фоне тормозов механики - это будет практически не заметно.
AloneR
> std::ifstream, std::ofstream
А вот эта штука заметно тормознее, как CRT, так и WINAPI
0iStalker
> Я бы переживал насчет этого меньше всего, - самое слабое е звено во всей этой
> бодяге - HDD, и как бы криво не был реализован CRT, на фоне тормозов механики -
> это будет практически не заметно.
Согласен. Но... если HDD тромоз и CRT тормоз, то это уже два тромоза.
AloneR
WinApi, NOBUFFERING + OVERLAPPED, всё асинхронно. Аккуратно завернуть и выставить наружу интерфейсы.
Тема в архиве.