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

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

Страницы: 1 2 Следующая »
#0
21:33, 6 июля 2011

Привет)

Что заюзать для работы с бинарными файлами:
std::ifstream, std::ofstream
или виндоусовские CreateFile(), ReadFile(), WriteFile()?
Если проект только для windows.
Что у профессионалов, подскажите, пожалуйста?

#1
22:03, 6 июля 2011

да пофиг если честно на самом деле все есть апи функции в конечном итоге CreateFile(), ReadFile(), WriteFile() - просто все остальное это удобные обвязки

#2
23:45, 6 июля 2011

Чем не нравятся fopen/fread/fwrite ?

#3
23:47, 6 июля 2011

0iStalker
> fopen/fread/fwrite
+1

#4
23:53, 6 июля 2011

0iStalker
Абсолютно идентичны *File-функциям из API.

AloneR
CreateFileW, хочу заметить.

#5
11:01, 7 июля 2011

Немного нефтему вопрос:
  Не вдуплился как win-api-шными функциями эмулировать ftell и fseek  ?

#6
11:05, 7 июля 2011

Nomad
> CreateFileW
Это препроцессор сам подставит, если в проекте юникод.

#7
12:01, 7 июля 2011

ksacvet777
> Не вдуплился как win-api-шными функциями эмулировать ftell и fseek ?
SetFilePointer(Ex)

Nomad
> Абсолютно идентичны *File-функциям из API.
А как же режим "t" с трансляцией перевода строк?

#8
18:52, 7 июля 2011

WinAPI функции работают только с байтовыми данными (т.е. им начихать текст это или число).
Функции ввода/вывода CRT в текстовом режиме сначала преобразуют (формитируют), а потом обращаются к WinAPI.
ИМХО:
WinAPI:
1. Ниже WinAPI нет других функции по работе с файлами -> быстрая работа с файлами.
2. Формирование текста, чисел и записи в файл можно организовать самому - этот код будет оптимизирован (если разрешено).

IO CRT:
1. Быстрое написание кода для работы с файлами, но не факт что быстрая.
2. Функции CRT, возможно, универсальны и не оптимизированы.
3. (Добавление) Функции кроссплатформенные.

#9
18:55, 7 июля 2011

Если переносить потом на какой-нибудь mac, то лучше CRT. Меньше головняков.

#10
19:01, 7 июля 2011

TirexiK
> Если переносить потом на какой-нибудь mac, то лучше CRT. Меньше головняков.
Согласен. Можно добавить 3 пунктом.

#11
21:07, 7 июля 2011

asvp
> 2. Функции CRT, возможно, универсальны и не оптимизированы.

Я бы переживал насчет этого меньше всего, - самое слабое е звено во всей этой бодяге - HDD, и как бы криво не был реализован CRT, на фоне тормозов механики - это будет практически не заметно.

#12
21:08, 7 июля 2011

AloneR
> std::ifstream, std::ofstream

А вот эта штука заметно тормознее, как CRT, так и WINAPI

#13
21:49, 7 июля 2011

0iStalker
> Я бы переживал насчет этого меньше всего, - самое слабое е звено во всей этой
> бодяге - HDD, и как бы криво не был реализован CRT, на фоне тормозов механики -
> это будет практически не заметно.
Согласен. Но... если HDD тромоз и CRT тормоз, то это уже два тромоза.

#14
23:12, 7 июля 2011

AloneR
WinApi, NOBUFFERING + OVERLAPPED, всё асинхронно. Аккуратно завернуть и выставить наружу интерфейсы.

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

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