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

Drive subsystem, filesystem drivers
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

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

Post by Leency »

theonlymirage писал в http://board.kolibrios.org/viewtopic.ph ... 032#p70031
Либо ошибся я, либо ls в корневой директории у меня не работает из-за ошибки в 70-ой и как следствие в 80-ой функции (можно списать на документацию). Правда в том, что я могу сделать конвертацию UTF16LE <-> ASCII и обойти проблему. Саму ошибку искать только буду - можете меня опередить (магия где-то в этом файле: http://websvn.kolibrios.org/filedetails ... fs_lfn.inc ).
Суть в том, что например 2, '/', 0, 'c', 0, 'd', 0, '2', 0, '/', 0, 0, 0 корректный путь, а db 2, '/', 0, 0, 0 не корректно. Во втором случае ядро считает абсолютный путь относительным, что не соответствует документации.
Выдержка из документации: "Можно указать кодировку строки, поместив в её начале байт." Более того: "В абсолютном пути можно поместить этот байт после '/' или добавить дополнительный '/' перед ним." Все случаи не тестировал, но для некоторых это тоже не работает. Возможно документация устарела.
Sapiens dominabitur astris
0CodErr
Posts: 1498
Joined: Sun Oct 30, 2011 6:43 pm

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

Post by 0CodErr »

Про путь приложения, кодировки и префиксы у нас есть целая тема http://board.kolibrios.org/viewtopic.php?f=2&t=3429 :lol:
Siemargl
Posts: 444
Joined: Tue Mar 08, 2016 11:00 pm

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

Post by Siemargl »

В процессе СтарТрека выяснилось, что побайтовое чтение с дискеты fd1 в сотни/тысячи раз дольше, чем с tmp1/

Либу я поправлю - на кэширование, но возможно есть баг в самой фс (ну или в вмваре)
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

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

Post by Leency »

Pathoswithin

Файл с именем содержащим тире не может быть прочитан на NTFS

Code: Select all

bug — dash.jpg
:
bug — dash.jpg
bug — dash.jpg (3.05 KiB) Viewed 9689 times
Sapiens dominabitur astris
User avatar
Pathoswithin
Mentor/Kernel Developer
Posts: 1303
Joined: Thu Mar 26, 2015 5:16 pm
Been thanked: 1 time

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

Post by Pathoswithin »

Не может быть прочитан через юникод? А то в ср866 тире нету.
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

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

Post by Leency »

СР866. Что делать с такими файлами?
Символ распространенный. Появляется при копировании элемента в ту же папку: "Коики -- копия.jpg". Может его в дефис конвертировать или как по-другому?
80 функция обратно совместима с 70, но при этом позволяет работать с такими вот именами?

Кстати та же проблема с украинским буквами: Димна сум_ш.
Sapiens dominabitur astris
0CodErr
Posts: 1498
Joined: Sun Oct 30, 2011 6:43 pm

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

Post by 0CodErr »

Leency wrote:Файл с именем содержащим тире не может быть прочитан на NTFS
Такое стало происходить после некоторых правок в ядре. А раньше вроде как это работало.
И это уже обсуждалось ранее http://board.kolibrios.org/viewtopic.ph ... 235#p66231
Я предлагал сделать "Примерно как с короткими именами в FAT"

Наверняка из-под Windows доступ к таким файлам имеется даже через CreateFileA|FindFirstFileA . Если так — решение есть, нужно лишь реализовать его.
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

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

Post by Leency »

Pathoswithin
В результате ревизии #6867,
RtfRead при открытии без параметра читает содержимое неизвестно чего, но судя по всему пытается открыть весь диск как RTF. :D
Можешь глянуть?
Sapiens dominabitur astris
User avatar
Pathoswithin
Mentor/Kernel Developer
Posts: 1303
Joined: Thu Mar 26, 2015 5:16 pm
Been thanked: 1 time

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

Post by Pathoswithin »

Я то глянул... http://websvn.kolibrios.org/comp.php?repname=Kolibri+OS&compare[]=%2F@6866&compare[]=%2F@6867
Только нужно больше информации.
Может я исправил какой-то баг, который считался фичей?
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

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

Post by Leency »

Я думаю баг в rtfread, лучше его глянь.
Sapiens dominabitur astris
User avatar
Kenshin
Posts: 41
Joined: Tue Jan 26, 2021 3:38 am

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

Post by Kenshin »

А это нормально, что файловая подсистема позволяет пользователю создавать папки "." и ".."?
User avatar
Pathoswithin
Mentor/Kernel Developer
Posts: 1303
Joined: Thu Mar 26, 2015 5:16 pm
Been thanked: 1 time

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

Post by Pathoswithin »

Ну, в FAT они не создадутся, так как уже существуют, а для остальных файловых систем это просто обычные папки.
User avatar
Kenshin
Posts: 41
Joined: Tue Jan 26, 2021 3:38 am

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

Post by Kenshin »

А в корневых директориях /rd/1/ /fd/1/ /tmp0/1/ и т.д. должны ли они создаваться? После такого в другой системе, примонтировавшей такой диск можно увидеть две папки "..".
User avatar
Pathoswithin
Mentor/Kernel Developer
Posts: 1303
Joined: Thu Mar 26, 2015 5:16 pm
Been thanked: 1 time

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

Post by Pathoswithin »

По логике наверно не должны, но и проблемы из-за этого вряд ли возникнут.
User avatar
Leency
Designer
Posts: 5731
Joined: Thu Jan 25, 2007 3:33 pm
Has thanked: 2 times

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

Post by Leency »

Нашёл ошибку в ФС. Если приложение создаёт файл и размер файла больше размера памяти приложения, то имеем полное зависание.
Воспроизводится на последней ревизии, так и на древней svn7576-img.

Code: Select all

#define MEMSIZE 1024*10

#include "../lib/kolibri.h"
#include "../lib/fs.h"

void main()
{
	CreateFile(12791, 0, "/tmp0/1/0.raw");
	notify("'Success' -O");  //если 12791>1024*10 то успеха не будет :)
	ExitProcess();
}
Attachments
t.kex
(398 Bytes) Downloaded 118 times
Sapiens dominabitur astris
Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest