Page 6 of 13

Re: Ошибки файловой системы

Posted: Mon Dec 26, 2016 6:04 pm
by 0CodErr
Siemargl, например,
mkdir "C:/"
Отказано в доступе.

Re: Ошибки файловой системы

Posted: Tue Jan 10, 2017 9:58 pm
by 0CodErr
Я тут было хотел кое-какие тесты провести. Но возникли некоторые проблемы.
Думаю, что связано с размером кластера на FAT32. Скопировал я файлы с RD на HD(64 Kb кластер). Потом хотел уже скопированные файлы скопировать в другое место. При попытке копирования
Spoiler:
1.PNG
1.PNG (13.72 KiB)
Viewed 5241 times
После проверки chkdsk
\1\DRIVERS\FM801.SYS Неправильный штамп времени.
Действительно, там было
1 января 2001 г., 01:01:00
Вон там viewtopic.php?f=9&t=3294#p65580 на втором скриншоте похожий баг с неверными атрибутами.

Re: Ошибки файловой системы

Posted: Sun Jan 22, 2017 8:43 pm
by Pathoswithin
Siemargl
revision #6845
Исправил на всякий случай.

Re: Ошибки файловой системы

Posted: Sun Jan 22, 2017 10:47 pm
by Siemargl
Pathoswithin wrote:Siemargl
revision #6845
Исправил на всякий случай.
Ну не то чтобы совсем исправил, скорее больше сломал )

unzip testmake.zip -d /tmp0/1
unzip testmake.zip -d /tmp0/1/111

unzip на FAT (tmp0) при записи и в корень и в подпапку получает ошибку записи, хотя файл создается. Ошибка в возврате кода ошибки?

unzip на NTFS при попытке распаковки в корень, получает ошибку 5, в подпапку работает
Не подтверждаю, какая то временная замутка с libc -
Выяснено, у меня была библиотека импорта libc.dll.a непарная той dll, что актуальна в системе - обновил из svn:/contrib/data и починилось

Re: Ошибки файловой системы

Posted: Mon Jan 23, 2017 3:33 am
by Pathoswithin
Тогда скажи что конкретно твой unzip вытворяет, потому что у файловых менеджеров никаких ошибок не возникает.

Re: Ошибки файловой системы

Posted: Tue Jan 24, 2017 6:59 pm
by Siemargl
По поводу ошибки записи на FAT.
Вот состояние после вызова 70.3 - типа записано 0 байт, но и ошибки нет.
В окне данных - информационная структура, с начала
http://clip2net.com/s/3GKyKzs

Имя файла корректное, я проверил.
Я сессию пока заморозил, если что надо показать из данных под отладчиком - напиши.

Собственно, это код функции
http://websvn.kolibrios.org/filedetails ... Fiowrite.c

Re: Ошибки файловой системы

Posted: Tue Jan 24, 2017 8:51 pm
by Pathoswithin
А, не возвращает размер... оно ещё и кому-то надо.

revision #6846

Re: Ошибки файловой системы

Posted: Tue Jan 24, 2017 11:02 pm
by Siemargl
По размеру идет контроль, либо записаны все данные, либо кончилось место на диске.

Для 70.0, 70.2 тоже должно возвращать.

Кстати, без возврата размера сломалось много фукнций - fwrite, fclose, fflush. Теперь работают.

Re: Ошибки файловой системы

Posted: Wed Jan 25, 2017 12:30 am
by Pathoswithin
Ну если ошибки нет, то нужно считать что прочитано/записано всё что требовалось. Если ошибка не end_of_File и не disk_full, то количество может быть не правильным.

Re: Ошибки файловой системы

Posted: Wed Jan 25, 2017 12:44 am
by Siemargl
Pathoswithin wrote:Ну если ошибки нет, то нужно считать что прочитано/записано всё что требовалось. Если ошибка не end_of_File и не disk_full, то количество может быть не правильным.
Все это правильно, но в стандартной библиотеке С, логика обратная. Там пляшут от размера http://www.cplusplus.com/reference/cstdio/fread/

В Паскале, кстати, также как в С

Re: Ошибки файловой системы

Posted: Thu Jan 26, 2017 3:14 pm
by 0CodErr
Pathoswithin wrote:А, не возвращает размер... оно ещё и кому-то надо.
Размер должен возвращаться. В документации это ясно написано
ebx = number of written bytes (possibly 0)
Pathoswithin wrote:Ну если ошибки нет, то нужно считать что прочитано/записано всё что требовалось.
Ну это ты так думаешь :)
А алгоритм может быть и таким: если прочитано/записано всё что требовалось, то ошибки нет.

Результат работы системных функций должен соответствовать их описанию в документации.

Re: Ошибки файловой системы

Posted: Thu Jan 26, 2017 3:23 pm
by Pathoswithin
Ну так я мог бы исправить документацию вместо кода. :wink:

Re: Ошибки файловой системы

Posted: Thu Feb 02, 2017 11:18 am
by Siemargl
По поводу глобального лока:
-запускаем Unzip cmake на один диск ext2 (любой)
-FAR начинаем удалять каталог с тысячами файлов на другом диске (usb)

прекрасно видно, что бегущие строки файлов распаковки в первом окне останавливаются до окончания удаления

Ну и надо дальше работать с кэшем - скорость записи в 120кб/с на диск никак не к лицу быстрой системе.

Re: Ошибки файловой системы

Posted: Thu Feb 02, 2017 2:23 pm
by Pathoswithin
120 КБ/с на диск? У меня даже со старым драйвером 1 МБ/с было, а сейчас где-то 60 МБ/с.
У тебя там виртуалка? Какая загрузка процессора?

Re: Ошибки файловой системы

Posted: Thu Feb 02, 2017 6:45 pm
by Siemargl
Это продолжение предыдущей темы про деградацию.
http://board.kolibrios.org/viewtopic.ph ... 210#p67990

Ничего не поменялось, просто 120кб/с это если поделить 3мб на 25с.

У меня виртуалка, но машина достаточно быстрая.

Копирование cmake.zip (20Mb) с флешки на ext2 hdd в shell занимает 20с, в KFAR 3c, CPU 50%
Shell копирует кусочками по 4Кб

Запустил копировать 1Гиг в Shell, потом отпишусь.....