file Gerenciamento de arquivos

## Seqüência de Chamamento

                [unit, err] = file("open", file-name [,status] [,access [,recl]] [,format])
                file("close", unit)
                file("rewind", unit)
                file("backspace", unit)
                file("last", unit)
                [units, typ, nams, mod, swap] = file()
                [units, typ, nams, mod, swap] = file(unit)

## Parâmetros

file-name

  string, nome o arquivo a ser aberto

  This function can not open files whose path has non-ascii UTF characters (accented, etc). In this case, please use mopen.
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. The next input argument `recl` is then mandatory.

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 erro, se a abertura falha. Se `err` for omitido, uma mensagem de erro aparece.

  65 | File already used
  66 | Too many files opened!
  67 | Unknown file format
  240 | The file already exists or directory write access denied.
  241 | The file does not exist or read access denied.

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`, `save`, `load`.

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

`file()` retorna os descritores dos arquivos abertos.

To test whether a file #`id` is opened, `file(id)~=[]` may be used.

`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

- isfile
- read
- write
- mopen
- save
- load
- uigetfile

## Histórico

6.0.0 stderr is inserted in the output of file() as units(1)=0, typ(1)="STD" and nams(1)="stderr".