POLA principe en C

erkan1404 Messages postés 2 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 25 octobre 2010 - 25 oct. 2010 à 17:16
cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 - 25 oct. 2010 à 17:43
Bonjour,

J'effectue un petit programme qui réalise une implémentation du principe POLA pour ce qui concerne les accès à des fichiers.

Par défaut, une commande ne pourra accéder à aucun fichier/répertoire. Si un chemin de fichier ou de répertoire est passé explicitement sur la ligne de commande alors ce fichier/répertoire sera accessible en lecture seule.

Si sur la ligne de commande, le fichier est entouré de chevrons </SOME/FILE>, alors l'accès en écriture est permis. De même si l'utilisateur spécifie en fin de ligne de commande un « + /chemin/vers/un/fichier », l'accès en écriture sur ce fichier/répertoire sera authorisé.

Ma question est de savoir comment on peut réimplémenter les appels à open en vérifiant les points suivants :

- pour l'accès en lecture :
le fichier doit apparaître sur la ligne de commande
- pour l'accès en écriture :
le fichier doit être entre chevrons sur la ligne de commance
le fichier sera spécifiquement autorisé par un + à la fin de la ligne de commande.


Cordialement

1 réponse

cptpingu Messages postés 3839 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 29 juin 2024 124
25 oct. 2010 à 17:43
Tu ne peux pas spécifier à open de faire tout ce travail ! Tu n'as pas d'autre choix que de le faire par toi même :p

Il te faut recoder un parseur, en fonction de ce que tu cherches à réaliser, ça peut être très simple comme plus compliqué (utilisation d'un AST).
C'est à dire que ton programme va soit analyser ce qui lui est donné en ligne de commande, soit ré-implémenter les fonctionnalitées d'un shell, et faire un post-traitement pour savoir si tu peux faire un open ou non, et dans quel mode.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Rejoignez-nous