CLOSE |
Ferme |
|---|---|
| Cobol | |
Syntaxe
|
CLOSE filename1 [(REAL|UNIT) [WITH NO REWIND]] [WITH (NO REWIND|LOCK)] [,filename2 [(REAL|UNIT) [WITH NO REWIND]]] ... [WITH (NO REWIND|LOCK)] |
|
CLOSE filename1 [WITH LOCK] [,filename2 [WITH LOCK]] ... |
Paramètres
| Nom | Description |
|---|---|
| filename1, filename2, ... | Ces paramètres désignent les noms logiques des fichiers ouverts précédemment dans le programme COBOL. L'instruction CLOSE agit sur chacun des fichiers listés pour mettre fin à leur utilisation, ce qui peut impliquer l'écriture des tampons restants, la libération des ressources ou le repositionnement du fichier. |
| REAL | Ce paramètre permet d'indiquer que le fichier est un fichier réel sur le support physique. |
| UNIT | Ce paramètre permet d'indiquer une unité logique, souvent dans le contexte de périphériques physiques comme des bandes magnétiques. |
| WITH NO REWIND | Ce paramètre permet d'indiquer des fichiers séquentiels sur bandes magnétique. Il signifie que le fichier ne doit pas être rembobiné après sa fermeture. Cela peut être utile lorsque plusieurs fichiers sont enchaînés sur la même bande et que l'on veut garder la position actuelle pour un traitement ultérieur. |
| WITH LOCK | Ce paramètre permet de maintenir le verrouillage du fichier même après sa fermeture. Il est utilisé pour des raisons de synchronisation ou de sécurité dans des environnements multi-utilisateurs, pour empêcher d'autres programmes d'ouvrir ou modifier le fichier fermé tant que le verrou est actif. |
Description
Cette instruction permet de terminer les traitements de fichiers.
Remarques
- L'instruction CLOSE joue un rôle fondamental dans la gestion des fichiers en COBOL, car elle marque la fin de leur utilisation dans le programme. Elle permet non seulement de fermer logiquement le fichier, mais aussi de libérer les ressources associées et de s'assurer que tous les tampons ont bien été écrits sur le support.
- Le mot clef WITH NO REWIND est particulièrement utile dans les environnements utilisant des bandes magnétiques. Il permet de fermer un fichier sans repositionner la bande à son début, ce qui est crucial lorsqu'on enchaîne plusieurs traitements sur la même bande ou lorsqu'on veut éviter une opération coûteuse de rembobinage.
- L'utilisation de WITH LOCK permet un contrôle précis sur l'accès concurrent aux fichiers, notamment dans les environnements multi-utilisateurs. Même après fermeture logique, le verrou protège le fichier contre toute ouverture ou modification, ce qui est utile dans des applications critiques où les accès doivent être coordonnés.
- Les options REAL et UNIT illustrent une approche plus ancienne de la gestion des périphériques, en lien avec des matériels physiques comme des lecteurs de bandes magnétiques ou d'autres supports séquentiels. Bien que rarement utilisés aujourd'hui, ces mots-clés témoignent de l'héritage de COBOL dans des contextes d'informatique industrielle.
- Il est possible de fermer plusieurs fichiers dans une seule instruction CLOSE, ce qui simplifie le code et optimise la gestion des ressources. Chaque fichier listé peut avoir ses propres options (WITH LOCK, WITH NO REWIND,...), ce qui offre une grande souplesse dans la manipulation simultanée de plusieurs flux de données.
- L'instruction CLOSE est complémentaire à l'instruction OPEN, avec laquelle elle forme le cycle de vie complet d'un fichier. Une bonne gestion de ces deux instructions est essentielle pour garantir l'intégrité des données et le bon fonctionnement du programme, notamment dans les traitements par lots.
- Fermer un fichier sans le verrouiller peut présenter des risques dans les systèmes partagés. Sans le paramètre WITH LOCK, un autre utilisateur ou processus pourrait modifier ou supprimer un fichier entre deux accès, ce qui peut entraîner des incohérences ou des erreurs imprévues dans les programmes COBOL critiques.
- Dans certains environnements COBOL modernes, certaines options comme REAL, UNIT ou même WITH NO REWIND peuvent être ignorées ou simulées, car elles n'ont plus de véritable effet sur les supports de stockage actuels. Il reste néanmoins important de connaître leur signification pour maintenir ou comprendre du code existant.
Dernière mise à jour : Jeudi, le 28 juillet 2011