# fileinfo

Fornece informações sobre um arquivo

## Seqüência de Chamamento

    [x,ierr]=fileinfo(file)

## Parâmetros

file

  string, o endereço do arquivo

x

  um vetor de inteiros de tamanho 13 contendo informações ou uma matriz vazia se o arquivo não existir.

ierr

  indicador de erro, 0, se não for encontrado nenhum erro.

## Descrição

x=fileinfo(file) retorna

x(1)

  O tamanho do arquivo

x(2)

  O modo do arquivo (valor decimal)

x(3)

  O id do usuário

x(4)

  O id do grupo

x(5)

  O número do dispositivo

x(6)

  A data da última modificação

x(7)

  A data da última mudança

x(8)

  A data do último acesso

x(9)

  O tipo de dispositivo (se o dispositivo for inode)

x(10)

  O tamanho de bloco para a entrada/saída do sismtema de arquivos (sempre 0 no Windows)

x(11)

  O número de blocos alocados (sempre 0 no Windows)

x(12)

  O inode

x(13)

  O número de hard links.

## Referência

Esta função é uma interface para a função C stat.

Permissões são tipicamente especificadas como números octais : dec2oct(x(2)) para conversão.

O modo numérico possui de um a quatro dígitos octais (0-7), derivados através da soma de bits com os valores 4, 2, e 1. Quaisquer dígitos omitidos são supostos como zeros à esquerda. O primeiro dígito seleciona o ID de usuário (4) e ajusta o ID do grupo (2) e atributos "sticky" (1). O segundo dígito seleciona permissões para o usuário que possui o arquivo: leitura (4), escrita (2), e execução (1); o terceiro dígito seleciona permissões para os outros usuários no grupo do arquivo, com os mesmos valores; e o quarto seleciona permissões para outros usuários que não estão no grupo do arquivo, com os mesmos valores.

## Exemplos

    w = fileinfo(SCI+'/etc/scilab.start')
    // permissão do arquivo
    dec2oct(w(2))
    // data do arquivo
    getdate(w(6))

    // Verificando a permissão de escrita em um arquivo
    w = fileinfo(SCI+'/etc/scilab.start')

    S_IWRITE = 128; // mascarando a permissão de escrita
    S_IEXEC = 64; // mascarando a permissão de execução
    S_IREAD = 256; // mascarando a permissão de leitura
    S_IFCHR = 8192; // mascarando a permissão de diretório

    if ( bitand( w(2), S_IWRITE ) <> 0) then
     disp('PERIMISSÃO DE ESCRITA neste arquivo.');
    else
     disp('NÃO HÁ PERIMISSÃO DE ESCRITA neste arquivo.');
    end

## Ver Também

- getdate
- file
- dispfiles
- newest
- isdir

## Autores

S. Steer INRIA

A.C