# file

Gerenciamento de arquivos

## Seqüência de Chamamento

    [unit [,err]]=file('open', file-name [,status] [,access [,recl]] [,format])
                file(action,unit)
                [units [,typ [,nams [,mod [,swap]]]]] = file([unit])

## Parâmetros

file-name

  string, nome o arquivo a ser aberto

status

  string, o status do arquivo a ser aberto

  "new"

    o arquivo não deve existir, novo arquivo (padrão)

  "old"

    o arquivo já deve existir

  "unknown"

    status desconhecido

  "scratch"

    o arquivo deve ser deletado ao fim da sessão

access

  string, o tipo de acesso ao arquivo

  "sequential"

    acesso seqüencial (padrão)

  "direct"

    acesso direto

format

  string,

  "formatted"

    para um arquivo formatado (padrão)

  "unformatted"

    registro binário

recl

  inteiro, é o tamanho de registros quando `access="direct"`

unit

  inteiro, descritor de unidade lógica do arquivo aberto

units

  vetor de inteiros, descritores de unidades lógicas dos arquivos abertos. As unidades 5 e 6 são reservadas pelo sistema para dispositivos de entrada e saída.

typs

  vetor de strings, tipo (C ou Fortran) dos arquivos abertos.

nams

  vetor de strings, endereços dos arquivos abertos.

mod

  modo de abertura de arquivo. Formado por três dígitos abc

  Arquivos Fortran
    a

      0 significa formatado e 1 não formatado (binário)

    b

      0 significa acesso sequencial e 1 acesso direto

    c

      0 significa "new", 1 significa "old", 2 significa "scratch" e 3 significa "unknown"

  Arquivos C
    a

      1 significa "r" (leitura), 2 significa "w" (escrita) e 3 significa "a" (anexação)

    b

      é 1 se o arquivo foi aberto pelo modo "+" (atualização)

    c

      é 1 se o arquivo foi aberto pelo modo "b" (binário)

swap

  alavanca de troca automática. swap=1 se a troca automática estiver ativada. swap é sempre 0 para arquivos Fortran.

err

  inteiro, número de mensagem de erro (ver error), se a abertura falha. Se err for omitido, uma mensagem de erro aparece.

action

  é um dos seguintes strings:

  "close"

    fecha os arquivos fornecidos pelos descritores de unidades lógicas fornecidos em `units`

  "rewind"

    coloca o ponteiro no início do arquivo

  "backspace"

    coloca o ponteiro no início do último registro.

  "last"

    coloca o ponteiro após o último registro.

## Descrição

Seleciona uma unidade lógica `unit` e gerencia o arquivo `file-name`.

`[unit [,err]]=file('open', file-name [,status] [,access [,recl]][,format])` permite abrir um arquivo com propriedades especificadas e obter o número de unidade associado `unit`. Este número de unidade pode ser utilizado para ações futuras no arquivo, ou como descritor de arquivo em chamadas às funções `read`, `write`, `readb`, `writb`,`save`, `load`.

`file(action,unit)` permite fechar o arquivo, ou mover o ponteiro do arquivo corrente.

`file()` retorna os descritores de unidades lógicas dos arquivos abertos. So `file('close',file() )` fecha todos os arquivos do usuário abertos (tipo C ou Fortran).

## Exemplos

    u=file('open',TMPDIR+'/foo','unknown')
    for k=1:4
      a=rand(1,4)
      write(u,a)
    end
    file('rewind',u)
    x=read(u,2,4)
    file('close',u)
    //
    u1=file('open',TMPDIR+'/foo','unknown')
    u2=mopen(TMPDIR+'/foo1','wb')
    [units,typs,nams]=file()
    file('close',u1);
    mclose(u2);

## Ver Também

- save
- load
- write
- read
- writb
- readb
- uigetfile
- mopen
- mclose