Subversion Repositories Kolibri OS

Rev

Rev 6712 | Rev 6790 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6712 Rev 6758
Line 3898... Line 3898...
3898
  * +20 = +0x14: ?: текстовая строка - путь к файлу, заканчивается нулём
3898
  * +20 = +0x14: ?: текстовая строка - путь к файлу, заканчивается нулём
3899
  или
3899
  или
3900
  * +20 = +0x14: byte: 0
3900
  * +20 = +0x14: byte: 0
3901
  * +21 = +0x15: dword: указатель на строку
3901
  * +21 = +0x15: dword: указатель на строку
3902
Чувствительность к регистру букв зависит от файловой системы.
3902
Чувствительность к регистру букв зависит от файловой системы.
-
 
3903
Если путь начинается не с '/', то он считается относительным.
-
 
3904
Получить или установить текущую папку можно с помощью сисфункции 30.
-
 
3905
'../' в начале пути означает подъём на одну папку относительно текущей.
3903
Можно указать кодировку, поместив в начале строки байт со значениями:
3906
Можно указать кодировку строки, поместив в её начале байт со значениями:
3904
  * 1 = cp866
3907
  * 1 = cp866
3905
  * 2 = UTF-16LE
3908
  * 2 = UTF-16LE
3906
  * 3 = UTF-8
3909
  * 3 = UTF-8
3907
  иначе будет использоваться кодировка cp866.
3910
иначе будет использоваться кодировка cp866. В абсолютном пути можно
-
 
3911
поместить этот байт после '/' или добавить дополнительный '/' перед ним.
3908
Формат строки:
3912
Формат абсолютного пути:
3909
  /base/number/dir1/dir2/.../dirn/file,
3913
  /base/number/dir1/dir2/.../dirn/file,
3910
где base/number идентифицирует устройство, на котором ищется файл:
3914
где base/number идентифицирует устройство, на котором ищется файл:
3911
  * RD/1 = рамдиск
3915
  * RD/1 = рамдиск
3912
  * FD/1 = первый флоппи-дисковод,
3916
  * FD/1 = первый флоппи-дисковод,
3913
    FD/2 = второй флоппи-дисковод
3917
    FD/2 = второй флоппи-дисковод
Line 3922... Line 3926...
3922
  * '/sys/example.asm',0
3926
  * '/sys/example.asm',0
3923
  * '/rd/1/example.asm',0
3927
  * '/rd/1/example.asm',0
3924
  * '/HD0/1/folder/file.txt',0
3928
  * '/HD0/1/folder/file.txt',0
3925
  * '/hd2/2/pics/tanzania.bmp',0
3929
  * '/hd2/2/pics/tanzania.bmp',0
3926
  * 2,'/',0,'sys','/',0,'F',0,'I',0,'L',0,'E',0,0,0
3930
  * 2,'/',0,'sys','/',0,'F',0,'I',0,'L',0,'E',0,0,0
3927
Также функция поддерживает относительные имена. Если путь начинается
-
 
3928
не с '/', то он считается относительно текущей папки. Получить или
-
 
3929
установить текущую папку можно с помощью сисфункции 30.
-
 
Line 3930... Line 3931...
3930
 
3931
 
3931
Доступные подфункции:
3932
Доступные подфункции:
3932
  * подфункция 0 - чтение файла
3933
  * подфункция 0 - чтение файла
3933
  * подфункция 1 - чтение папки
3934
  * подфункция 1 - чтение папки
Line 4132... Line 4133...
4132
  * ebx = указатель на информационную структуру
4133
  * ebx = указатель на информационную структуру
4133
Формат информационной структуры:
4134
Формат информационной структуры:
4134
  * +0: dword: 4 = номер подфункции
4135
  * +0: dword: 4 = номер подфункции
4135
  * +4: dword: младший dword нового размера файла
4136
  * +4: dword: младший dword нового размера файла
4136
  * +8: dword: старший dword нового размера файла
4137
  * +8: dword: старший dword нового размера файла
4137
                   (должен быть 0 для FAT)
-
 
4138
  * +12 = +0xC: dword: 0 (зарезервировано)
4138
  * +12 = +0xC: dword: 0 (зарезервировано)
4139
  * +16 = +0x10: dword: 0 (зарезервировано)
4139
  * +16 = +0x10: dword: 0 (зарезервировано)
4140
  * +20 = +0x14: путь, правила формирования имён указаны в общем описании
4140
  * +20 = +0x14: путь, правила формирования имён указаны в общем описании
4141
Возвращаемое значение:
4141
Возвращаемое значение:
4142
  * eax = 0 - успешно, иначе код ошибки файловой системы
4142
  * eax = 0 - успешно, иначе код ошибки файловой системы
4143
  * ebx разрушается
4143
  * ebx разрушается
4144
Замечания:
4144
Замечания:
4145
  * Если новый размер файла меньше старого, файл усекается. Если
4145
  * Если новый размер файла меньше старого, файл усекается.
4146
    новый размер больше старого, файл расширяется нулевыми символами.
4146
    Если новый размер больше старого, файл расширяется, и если
4147
    Если новый размер равен старому, единственным результатом вызова
4147
    разница в размере не больше 16 МБ, новое место очищается нулями.
4148
    является установка даты/времени модификации и доступа в текущие.
-
 
4149
  * Если свободного места на диске недостаточно для расширения файла,
4148
  * Если свободного места на диске недостаточно для расширения файла,
4150
    то функция расширит насколько возможно, после чего вернёт
4149
    то функция расширит насколько возможно, после чего вернёт
4151
    код ошибки 8.
4150
    код ошибки 8.
4152
  * Функция не поддерживается для CD (вернётся код ошибки 2).
4151
  * Функция не поддерживается для CD (вернётся код ошибки 2).