O comando CLOSE finaliza o uso de um arquivo aberto, liberando sua área de registro e atualizando seu status. Após o CLOSE, é necessário um novo OPEN antes de qualquer operação de entrada/saída (I/O).

📌 Para que serve

  • Finaliza o uso de um arquivo aberto.

  • Libera recursos associados ao arquivo.

  • Atualiza o FILE STATUS, se declarado.

  • Garante integridade dos dados gravados em disco.

🧾 Sintaxe básica

CLOSE nome-do-arquivo.

🔒 Com opção de bloqueio

CLOSE nome-do-arquivo WITH LOCK.

Garante que o arquivo não será reaberto dentro da mesma unidade de execução, mesmo por outros programas que o compartilhem.


📋 Regras e observações importantes

  • A instrução CLOSE só pode ser usada em arquivos abertos.

  • Após o CLOSE, a área de registro associada ao arquivo não estará mais disponível.

  • Um OPEN deve ser feito novamente antes de qualquer READ, WRITE, REWRITE, etc.

  • Caso não se feche explicitamente o arquivo, ele será fechado implicitamente ao final da execução do programa.

  • Arquivos definidos com SELECT OPTIONAL e que não existem no tempo de execução não geram erro ao serem fechados.

📂 Atualização do FILE STATUS

Se o FILE STATUS foi declarado para o arquivo, a variável será atualizada automaticamente com o código de encerramento.

🚨 Erros e exceções

Se ocorrer erro durante o CLOSE, o programa executará o parágrafo de exceção definido com USE AFTER ERROR PROCEDURE, se declarado.

📎 Exemplo completo

SELECT ARQ-CLIENTE ASSIGN TO "clientes.dat"
    FILE STATUS IS WS-FS-CLIENTE.

FD ARQ-CLIENTE.
01 REG-CLIENTE PIC X(100).

WORKING-STORAGE SECTION.
01 WS-FS-CLIENTE PIC XX.

PROCEDURE DIVISION.
    OPEN INPUT ARQ-CLIENTE
    READ ARQ-CLIENTE AT END
        DISPLAY "FIM DO ARQUIVO".
    CLOSE ARQ-CLIENTE.

 

✅ Conclusão

A instrução CLOSE é fundamental para a boa prática de manipulação de arquivos em COBOL. Encerrar corretamente um arquivo garante a liberação de recursos do sistema, evita corrupção de dados e permite controle eficaz do ciclo de vida de entrada/saída. Lembre-se: cada arquivo aberto deve ser fechado, preferencialmente com controle de erros e verificação de FILE STATUS.