Spec-Zone.ru › Octave 5

14.2.1 Открытие и закрытие файлов

При чтении данных из файла он должен быть сначала открыт для чтения, и аналогично при записи в файл. Функция fopen возвращает указатель на открытый файл, готовый к чтению или записи. После того, как все данные были прочитаны или записаны в открытый файл, он должен быть закрыт. Функция fclose выполняет это действие. Следующий код иллюстрирует базовый шаблон записи в файл, но очень похожий шаблон используется при чтении файла.

filename = "myfile.txt";
fid = fopen (filename, "w");
# Do the actual I/O here…
fclose (fid);
fid = fopen (name)
fid = fopen (name, mode)
fid = fopen (name, mode, arch)
[fid, msg] = fopen (…)
fid_list = fopen ("all")
[file, mode, arch] = fopen (fid)

Открыть файл для низкоуровневого ввода-вывода или запросить открытые файлы и дескрипторы файлов.

Первый вариант функции fopen открывает именованный файл в указанном режиме (чтение-запись, только чтение и т.д.) и интерпретации архитектуры (IEEE big endian, IEEE little endian и т.д.) и возвращает целое значение, которое может быть использовано для ссылки на файл позже. Если произошла ошибка, fid устанавливается в -1, а msg содержит соответствующее сообщение об ошибке системы. mode — строка из одного или двух символов, которая определяет, открывается ли файл для чтения, записи или для обоих.

Второй вариант функции fopen возвращает вектор идентификаторов файлов, соответствующих всем открытым файлам, исключая потоки stdin, stdout, и stderr.

Третий вариант функции fopen возвращает информацию об открытом файле по его идентификатору файла.

Например,

myfile = fopen ("splat.dat", "r", "ieee-le");

открывает файл splat.dat для чтения. При необходимости бинарные числовые значения будут читаться, предполагая, что они хранятся в формате IEEE с наименее значимым битом первым, а затем преобразуются в родной формат.

Открытие файла, который уже открыт, просто снова открывает его и возвращает отдельный идентификатор файла. Открытие файла несколько раз не является ошибкой, хотя запись в один и тот же файл через несколько разных идентификаторов файлов может привести к непредсказуемым результатам.

Возможные значения mode:

‘r’ (по умолчанию)

Открыть файл для чтения.

‘w’

Открыть файл для записи. Предыдущее содержимое удаляется.

‘a’

Открыть или создать файл для записи в конце файла.

‘r+’

Открыть существующий файл для чтения и записи.

‘w+’

Открыть файл для чтения или записи. Предыдущее содержимое удаляется.

‘a+’

Открыть или создать файл для чтения или записи в конце файла.

Добавьте "t" к строке режима, чтобы открыть файл в текстовом режиме, или "b" — в двоичном режиме. В системах Windows чтение и запись в текстовом режиме автоматически преобразуют символы перевода строки в соответствующий символ конца строки для системы (возврат каретки-перевод строки в Windows). По умолчанию, если режим не указан, используется двоичный режим.

Кроме того, вы можете добавить "z" к строке режима, чтобы открыть сжатый gzip файл для чтения или записи. Для этого необходимо также открыть файл в двоичном режиме.

Параметр arch — строка, определяющая стандартный формат данных для файла. Допустимые значения для arch:

"native" или "n" (по умолчанию)

Формат текущей машины.

"ieee-be" или "b"

Формат IEEE big endian.

"ieee-le" или "l"

Формат IEEE little endian.

Однако преобразования в настоящее время поддерживаются только для форматов ‘native’, ‘ieee-be’ и ‘ieee-le’.

При открытии нового файла, которого еще нет, разрешения будут установлены в 0666 - umask.

Примечание по совместимости: Octave открывает файлы с использованием буферизованного ввода-вывода. Небольшие записи накапливаются до тех пор, пока внутренний буфер не заполнится, а затем все записывается в одной операции. Это очень эффективно и повышает производительность. MATLAB, однако, открывает файлы с помощью сброшенного ввода-вывода, где каждая операция записи сразу выполняется. Если операция записи должна быть выполнена сразу после записи данных, то за операцией записи следует вызов fflush для очистки внутреннего буфера.

См. также: fclose, fgets, fgetl, fscanf, fread, fputs, fdisp, fprintf, fwrite, fskipl, fseek, frewind, ftell, feof, ferror, fclear, fflush, freport, umask.

fclose (fid)
fclose ("all")
status = fclose ("all")

Закрыть файл, указанный дескриптором файла fid.

В случае успеха fclose возвращает 0, в противном случае — -1. Второй вариант вызова fclose закрывает все открытые файлы, за исключением stdin, stdout, stderr, и любые FIDs, связанные с gnuplot.

См. также: fopen, fflush, freport.

is_valid_file_id (fid)

Возвращает true, если fid ссылается на открытый файл.

См. также: freport, fopen.

© 1996–2022 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v5.2.0/Opening-and-Closing-Files.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API