Fonction Habilitation Optimiser(Invariant, PasDEffetDeBord) Executer(Commande : Nul Ou Caractere, Synchrone : Booleen=Vrai, Cacher : Booleen=Faux, NumeroProcessusFils : Entier=? Sortie, RepertoireInitial : Nul Ou Caractere=Nul, EcrireEntree : Nul Ou Fonction() Retourner Nul Ou Caractere=Nul, LireSortie : Nul Ou Procedure(M:Caractere)=Nul) Retourner Entier;
Si la valeur d'un paramètre comporte le caractère espace, alors celle-ci doit être encadrée de caractères guillemet "
ou de caractères apostrophe '
.
Si Commande est Nul, alors le résultat est zéro.
Si Cacher est Vrai, alors l'exécution est cachée de l'utilisateur. Ce paramètre est particulièrement important pour les applications fenêtrées.
Si Synchrone est Vrai, alors l'exécution est synchronisée. Ainsi, la fonction Executer retourne uniquement quand l'exécution du sous-programme est terminée. En ce cas, le résultat de Executer est le code-retour du programme. Si Synchroniser est Faux, alors l'exécution est asynchrone et s'effectue en parallèle du programme courant. Ainsi, la fonction Executer retourne dès que l'exécution du sous-programme est lancée. En ce cas, le résultat de Executer est zéro.
Quel que soit le mode d'exécution, NumeroProcessusFils recueille le numéro de processus du nouveau programme.
Si RepertoireInitial est précisé, alors le répertoire initial du nouveau programme correspond à cette valeur. Sinon, il s'agit du répertoire courant.
Il est possible de rediriger les entrées-sorties du programme depuis ou vers des fichiers. Cela s'effectue de la manière suivante :
<
introduit le nom du fichier dont le contenu est substitué à l'entrée standard (Clavier pour un programme en technologie Up ! Virtual Technical Machine).
>
ou 1>
introduit le nom du fichier recevant la sortie standard (Ecran pour un programme Up ! Virtual Technical Machine). Le contenu du fichier est écrasé.
>>
ou 1>>
introduit le nom du fichier recevant la sortie standard (Ecran pour un programme Up ! Virtual Technical Machine). La sortie est écrite à la suite du fichier.
2>
introduit le nom du fichier recevant la sortie d'erreur standard. Le contenu du fichier est écrasé.
2>>
introduit le nom du fichier recevant la sortie d'erreur standard. La sortie est écrite à la suite du fichier.
2>&1
signifie que la sortie d'erreur standard doit être identique à la sortie standard.
EcrireEntree()
du programme courant seront lues par les instructions Clavier.Lire()
du nouveau programme ; les valeurs écrites par Ecran.Ecrire()
du nouveau programme seront lues par LireSortie()
du programme courant. Ceci est le principe tuyaux anonymes (anonymous pipes). Les appels aux procédures et fonctions EcrireEntree()
et LireSortie()
sont gérées de manière asynchrone par Up ! System. Ces mécanismes lecture et écriture ont priorité sur la redirection des entrées-sorties.
Principal
/*******/
Variable
/******/
PIdNotePad : Entier;
Debut
...
?=Executer("notepad.exe", Faux, Faux, PIdNotePad);
/* Lance le bloc-notes. */
?=Executer("cat < c:/tmp/ListeFichiers.txt > c:/tmp/Sortie.txt", Faux, Faux, PIdNotePad);
/* Concatène le contenu des fichiers énumérés dans 'c:\tmp\ListeFichiers.txt' au moyen de la commande 'cat'. Le résultat de la concaténation est redirigée dans le fichier 'c:\tmp\Sortie.txt'. */
...
Fin Principal
- | - | - | - | - | - | - | - | - |