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). |