alternate ways of setting the string encoding for absolute paths

git-svn-id: svn://kolibrios.org@6758 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pathoswithin
2016-11-25 15:11:25 +00:00
parent ae17e1bd38
commit 8eb00f284b
4 changed files with 63 additions and 50 deletions

View File

@@ -3900,12 +3900,16 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* +20 = +0x14: byte: 0
* +21 = +0x15: dword: указатель на строку
Чувствительность к регистру букв зависит от файловой системы.
Можно указать кодировку, поместив в начале строки байт со значениями:
Если путь начинается не с '/', то он считается относительным.
Получить или установить текущую папку можно с помощью сисфункции 30.
'../' в начале пути означает подъём на одну папку относительно текущей.
Можно указать кодировку строки, поместив в её начале байт со значениями:
* 1 = cp866
* 2 = UTF-16LE
* 3 = UTF-8
иначе будет использоваться кодировка cp866.
Формат строки:
иначе будет использоваться кодировка cp866. В абсолютном пути можно
поместить этот байт после '/' или добавить дополнительный '/' перед ним.
Формат абсолютного пути:
/base/number/dir1/dir2/.../dirn/file,
где base/number идентифицирует устройство, на котором ищется файл:
* RD/1 = рамдиск
@@ -3924,9 +3928,6 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* '/HD0/1/folder/file.txt',0
* '/hd2/2/pics/tanzania.bmp',0
* 2,'/',0,'sys','/',0,'F',0,'I',0,'L',0,'E',0,0,0
Также функция поддерживает относительные имена. Если путь начинается
не с '/', то он считается относительно текущей папки. Получить или
установить текущую папку можно с помощью сисфункции 30.
Доступные подфункции:
* подфункция 0 - чтение файла
@@ -4134,7 +4135,6 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* +0: dword: 4 = номер подфункции
* +4: dword: младший dword нового размера файла
* +8: dword: старший dword нового размера файла
(должен быть 0 для FAT)
* +12 = +0xC: dword: 0 (зарезервировано)
* +16 = +0x10: dword: 0 (зарезервировано)
* +20 = +0x14: путь, правила формирования имён указаны в общем описании
@@ -4142,10 +4142,9 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* eax = 0 - успешно, иначе код ошибки файловой системы
* ebx разрушается
Замечания:
* Если новый размер файла меньше старого, файл усекается. Если
новый размер больше старого, файл расширяется нулевыми символами.
Если новый размер равен старому, единственным результатом вызова
является установка даты/времени модификации и доступа в текущие.
* Если новый размер файла меньше старого, файл усекается.
Если новый размер больше старого, файл расширяется, и если
разница в размере не больше 16 МБ, новое место очищается нулями.
* Если свободного места на диске недостаточно для расширения файла,
то функция расширит насколько возможно, после чего вернёт
код ошибки 8.
@@ -4599,7 +4598,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* esi = длина структуры sockaddr
Формат структуры SockAddr:
* +0: Word: Family
* +2: 14*Byte: Data
* +2: 14*Byte: Data
Возвращаемое значение:
* eax = -1 для ошибки
* ebx = код ошибки
@@ -4618,7 +4617,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
* esi = длина структуры sockaddr
Формат структуры SockAddr:
* +0: Word: Family
* +2: 14*Byte: Data
* +2: 14*Byte: Data
Возвращаемое значение:
* eax = номер сокета из принятого сокета, -1 для ошибки
* ebx = код ошибки