
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
10.03.2004, 17:34
|
|||
|---|---|---|---|
|
|||
В чем ошибка? |
|||
|
#18+
Есть следующий код hSourceFile = _open((LPSTR) m_lpszEntryName,_O_RDONLY | _O_TEXT ); lFileLen = _filelength(hSourceFile); lpszImportSyntax = (LPSTR) malloc((size_t) lFileLen+1); _read(hSourceFile,lpszImportSyntax,lFileLen); _close(hSourceFile); hSourceFile =_open("CompErr1.log",_O_RDWR | _O_TEXT | _O_CREAT ); _write(hSourceFile,lpszImportSyntax, lFileLen); _close(hSourceFile); по идеи CompErr1.log должен быть идентичен файлу с которого мы считали информацию на самом же деле он получается немного другим (последняя строка дублируется два раза). В чем ошибка ни как не могу понять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 22:33
|
|||
|---|---|---|---|
В чем ошибка? |
|||
|
#18+
Тк указан _O_TEXT, то файл открывается в текстовом режиме. Это значит, что после вызова функции read(), в буфере будет заменена последовательность символов 0x0D 0x0A на 0x0A, те символы 0x0D просто удаляются из буфера. Значит длина прочитанных данных будет меньше длины, которую вернула функция lFileLen = _filelength(hSourceFile). При записи write() все происходит в обратном порядке, те все символы 0x0A заменяются на последовательность символов 0x0D 0x0A и длина файла увеличивается. Итак, когда мы читаем lFileLen байт, реально прочитывается меньше, хвост заполнен в общем случае произвольными данными, когда записываем lFileLen байт, то захватываем этот хвост. Вообще, единственный корректный способ определить сколько байт успешно записано или считано - это проанализировать возвращаемое значение функций read() или write(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2004, 09:00
|
|||
|---|---|---|---|
|
|||
В чем ошибка? |
|||
|
#18+
В дополнение к предыдущему. Вместо _O_TEXT пользуйтесь _O_BINARY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/search_topic.php?author=Update&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
get settings: |
13ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
| others: | 640ms |
| total: | 847ms |

| 0 / 0 |
