Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Закрытие файла. Теоретический вопрос про fclose; 
V
    Опции темы
Guedda
Дата 17.1.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Да. Именно.
Я понимаю, что
Цитата

Когда ты работаешь с файлом, запись в файл не идет при каждом вызове fwrite.
Данные сначала пишутся в некий буфер, по его накополнении, сидываются уже в сам файл.
При закрытии файла буфер, даже если он не полный скидывается в файл и сам файл закрывается, тобишь туда пишется символ конца файла и освобождается указатель ссылки на файл.


Меня совершенно поразил тот факт, что в Юникс/Линукс все идет нормально. Так вот я начал подозревать, что дело в методах записи в файл.

Кстати, если пишешь не "at" (то бишь текстовый), а "ab" (то бишь бинарный), то все идет нормально.

Посмотрев в HEX-редакторе файл, который создается в Линуксе (без fclose), который создается в Линуксе(с fclose), и который создается в Win(с fclose).
Вот, собственно, код:
Код

//Linux no fclose
3С 7А 0A ... 0D 0A
//Linux with fclose
3C 7A 0A ... 0A
//Windows with fclose
3C 7A 0A ... 0D

Вот что получилось. Ниччего не понимаю. Значит, в первом случае добавляется "\r\n", во втором - "\r", а в третьем - "\n".

Может в этом проблема?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Guedda
Дата 17.1.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Переставил сервак. Поставил IIS... Никаких изменений.
Также файл поврежден.


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 18.1.2006, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



Guedda это уже определенная специфика ОС, строения Файловых Систем.
PM ICQ   Вверх
Guedda
Дата 18.1.2006, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Значит, для правильной работы сценария просто необходимо закрывать все открытые файлы, не давая на растерзание закрытие сценарием.

Так? Значит выражение в книге не нужно? Зря они так написали?


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Illuminaty
Дата 18.1.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: нет
Всего: 56



ИМХО, всегда нужно закрывать файл. Особенно, если сценарий большой и файл больше не будет нужен в нем.
PM MAIL ICQ   Вверх
Guedda
Дата 18.1.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Тогда вопрос оказывается "решенным"


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0472 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.