1 <?xml version="1.0" encoding="UTF-8"?>
3 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4 * Copyright (C) XXXX-2008 - INRIA
5 * Copyright (C) 2012 - 2016 - Scilab Enterprises
6 * Copyright (C) 2018 - Samuel GOUGEON
8 * This file is hereby licensed under the terms of the GNU GPL v2.0,
9 * pursuant to article 5.3.4 of the CeCILL v.2.1.
10 * This file was originally licensed under the terms of the CeCILL v2.1,
11 * and continues to be available under such terms.
12 * For more information, see the COPYING file which you should have received
13 * along with this program.
16 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
17 xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml"
18 xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
19 xmlns:scilab="http://www.scilab.org" xml:id="file" xml:lang="ru">
21 <refname>file</refname>
22 <refpurpose>управление файлами</refpurpose>
25 <title>Синтаксис</title>
27 [unit, err] = file("open", file-name [,status] [,access [,recl]] [,format])
30 file("backspace", unit)
32 [units, typ, nams, mod, swap] = file()
33 [units, typ, nams, mod, swap] = file(unit)
37 <title>Аргументы</title>
40 <term>file-name</term>
42 <para>строковое значение, имя файла, который нужно открыть</para>
44 Эта функция не может открывать файлы, чьи пути имеют не-ascii
45 UTF-символы (диакритические знаки и т.д.). В этом случае следует
46 использовать <literal>mopen()</literal>.
53 <para>строковое значение, статус файла, который следует открыть</para>
58 <para>файл не существует, новый файл (по умолчанию);</para>
64 <para>файл уже существует;</para>
68 <term>"unknown"</term>
70 <para>неизвестный статус;</para>
74 <term>"scratch"</term>
76 <para>файл должен будет удалён в конце сессии.</para>
85 <para>строковое значение, тип доступа к файлу:</para>
88 <term>"sequential"</term>
90 <para>последовательный доступ (по умолчанию);</para>
96 <para>прямой доступ.</para>
105 <para>строковое значение, формат файла:</para>
108 <term>"formatted"</term>
110 <para>для форматированных файлов (по умолчанию);</para>
114 <term>"unformatted"</term>
116 <para>двоичная запись.</para>
125 <para>целочисленное значение, это размер записи в байтах, в случае
126 <literal>access="direct"</literal>
134 целочисленное значение, указатель на логический модуль открытого файла
142 вектор целочисленных значений, указатель на логический модуль открытого
143 файла. Модули 5 и 6 (%io) зарезервированы системой для входных и выходных
152 Символьный вектор-строка, тип (C или Fortran) открытых файлов.
159 <para>Символьный вектор-строка, имена путей открытых файлов.</para>
165 <para>режим открытия файла. Сформированный тремя элементами abc:</para>
168 <td colspan="2">><emphasis role="bold">Файлы Fortran</emphasis></td>
172 <td>0 стоит для форматированных, а 1 - для неформатированных (двоичных)</td>
176 <td>0 стоит для последовательного доступа, а 1 - для прямого доступа</td>
180 <td>0 стоит для "new", 1 - для "old", 2 - для "scratch" и 3 - для "unknown"</td>
183 <td colspan="2"><emphasis role="bold">C-файлы</emphasis></td>
187 <td>1 стоит для "r" (чтение), 2 стоит для "w" (запись) и 3 - для "a" (дополнение)</td>
191 <td>равен 1, если файл открыт в режиме "+" (обновление)</td>
195 <td>равен 1, если файл открыт в режиме "b" (двоичный)</td>
204 переключатель автоматического обмена. <literal>swap=1</literal>, если
205 автоматический обмен включён. Для Fortran-файлов <varname>swap</varname>
214 целочисленный код, возвращаемый, если открытие файла провалилось.
215 Если <varname>err</varname> пропущен, то выдаётся сообщение об ошибке.
218 <tr valign="top"><th>65</th><td>Файл уже используется</td></tr>
219 <tr valign="top"><th>66</th><td>Открыто слишком много файлов!</td></tr>
220 <tr valign="top"><th>67</th><td>Неизвестный формат файла</td></tr>
221 <tr valign="top"><th>240</th>
222 <td>Файл уже существует или запрещена запись в директорию.</td></tr>
223 <tr valign="top"><th>241</th><td>Файл не существует или чтение запрещено.</td></tr>
230 <title>Описание</title>
232 <literal>file(…)</literal> выбирает логический модуль <varname>unit</varname> и
233 управляет файлом <varname>file-name</varname>.
237 <term>[unit [,err]]=file("open", file-name [,status] [,access [,recl]][,format])
241 позволяет открыть файл с особыми параметрами и получить номер связанного
242 модуля <varname>unit</varname>. Этот номер модуля можно использовать для
243 дальнейших действий с этим файлом или в качестве дескриптора файла при
244 вызове функций <function>read</function>, <function>write</function>,
245 <function>readb</function>, <function>writb</function>,
246 <function>save</function>, <function>load</function>.
256 позволяет закрыть файл или передвинуть текущий указатель файла.
266 кладёт указатель в начало файла.
272 file("backspace", unit)
276 кладёт указатель в начало последней записи.
286 кладёт указатель после последней записи.
296 возвращает дескрипторы открытых файлов.
299 Чтобы проверить, открыт ли файл, чей модуль равен <literal>id</literal>,
300 можно использовать <literal>file(id)~=[]</literal>.
303 Чтобы закрыть все открытые пользователем файлы (типа C или Fortran),
304 можно использовать <literal>file("close",file())</literal>.
311 <title>Примеры</title>
312 <programlisting role="example"><![CDATA[
313 u=file("open",TMPDIR+"/foo","unknown")
322 u1=file("open",TMPDIR+"/foo","unknown")
323 u2=mopen(TMPDIR+"/foo1","wb")
324 [units,typs,nams]=file()
329 <refsection role="see also">
330 <title>Смотрите также</title>
331 <simplelist type="inline">
333 <link linkend="isfile">isfile</link>
336 <link linkend="read">read</link>
339 <link linkend="readb">readb</link>
342 <link linkend="write">write</link>
345 <link linkend="writb">writb</link>
348 <link linkend="mopen">mopen</link>
351 <link linkend="save">save</link>
354 <link linkend="load">load</link>
357 <link linkend="uigetfile">uigetfile</link>
361 <refsection role="history">
362 <title>История</title>
365 <revnumber>6.0.0</revnumber>
367 Внесена stderr в выход file() в виде units(1)=0, typ(1)="STD" и