- Справка Scilab
- Файлы: функции ввода/вывода
- Директория
- Пути - Имена файлов
- copyfile
- deletefile
- dispfiles
- fileinfo
- findfiles
- fprintfMat
- fscanfMat
- getmd5
- getURL
- %io
- isfile
- listfiles
- listvarinfile
- mclearerr
- mclose
- mdelete
- meof
- merror
- mfprintf
- mfscanf
- mget
- mgetl
- mgetstr
- mopen
- movefile
- mput
- mputl
- mputstr
- mseek
- mtell
- newest
- save format
- scanf
- преобразование scanf
Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
fileinfo
предоставляет информацию о файле
Синтаксис
[x,ierr] = fileinfo(files)
Аргументы
- files
символьная строка или вектор-столбец строк, имя файла и путь до него
- x
вектор целых чисел размером 13 элементов, содержащий информацию, либо пустую матрицу, если файла не существует.
Если
files
является вектор-столбцом строк, тоx
будет матрицей размеромm x 13
.Если файла с указанным именем не существует, то в качестве выходной информации будет возвращена строка из 13 элементов и в каждом элементе
Nan
.- ierr
указатель ошибки, 0, если ошибки не произошло.
Описание
x = fileinfo(file)
возвращает:
- x(1)
Размер файла
- x(2)
Режимный код файла (десятичное значение)
- x(3)
Идентификатор пользователя
- x(4)
Идентификатор группы
- x(5)
Номер устройства
- x(6)
Дата последнего изменения данных
- x(7)
Дата последнего изменения статуса файла
- x(8)
Дата последнего доступа
- x(9)
Тип устройства (если инодное устройство)
- x(10)
Размер блока для ввода/вывода файловой системы (в Windows всегда 0)
- x(11)
Количество распределённых блоков (в Windows всегда 0)
- x(12)
Индексный дескриптор
- x(13)
Количество жёстких ссылок
Ссылки
Эта функция является интерфейсом к C-функции stat
.
Права обычно определяются в виде восьмеричных чисел: используйте
для преобразования dec2oct(x(2))
.
Числовой режим представляет собой от одной до четырёх восьмеричных цифр (0-7), полученных добавлением битов со значениями 4, 2 и 1. Любые опущенные цифры предполагаются предварёнными нулями. Первая цифра выбирает набор атрибутов идентификатора пользователя (4), группы пользователя (2) и sticky-бита (1). Вторая цифра выбирает права пользователя, который владеет файлом: чтение (4), запись (2) и исполнение (1); третье число выбирает права для других пользователей в группе файлов с теми же самыми значениями.
So, to check permissions, it is necessary to use masks. Let us take an example:
In octal, x(2)=1664, so first digit corresponds to sticky attributes. The second
indicates that file owner has permission of writing and reading. It is the same
for other users in the file's group. Finally, others users has just right to read.
To apply a mask, it is simpler to look at this octal in binary.
So: x
(2)= 1 110 110 100.
To check if the owner has write permission, we must take a look at the second triplet: 110
and compare it with write permission 010. So, the operation is: 110 000 000 & 010 000 000.
If result is not null (it is the case here), owner has write permission.
Примеры
w = fileinfo(SCI+'/etc/scilab.start') // права на файл dec2oct(w(2)) // дата файла getdate(w(6)) // Проверка прав на запись w = fileinfo(SCI+'/etc/scilab.start') S_IWRITE = 128; // маска прав на запись S_IEXEC = 64; // маска прав на исполнение S_IREAD = 256; // маска прав на чтение S_IFCHR = 8192; // маска прав директории if ( bitand( w(2), S_IWRITE ) <> 0) then disp('Для этого файла есть ПРАВО НА ЗАПИСЬ.'); else disp('Для этого файла НЕТ ПРАВА НА ЗАПИСЬ.'); end FILES = [SCI;SCIHOME;'несуществующий_файл';TMPDIR] [X,ERRS] = fileinfo(FILES)
Смотрите также
Report an issue | ||
<< dispfiles | Файлы: функции ввода/вывода | findfiles >> |