Processus

1. La commande system

La méthode system fait partie du module Kernel, elle est donc toujours disponible. Elle prend en argument une chaîne correspondant à une commande système. Une fois cette commande exécutée, elle retourne vrai si tout s’est bien passé et faux sinon. Le code de sortie est disponible par la variable $?. Si la commande génère des caractères en sortie, ils deviendront des caractères de sortie du processus Ruby et il ne sera pas possible de les récupérer.

Exemple :

puts "Fin de commande #{$?}" if system "cmd.exe /C dir" 

Afin de pouvoir garder le résultat de la commande, il suffit d’utiliser le caractère `.

Exemple :

resultat = `cmd.exe /C dir` 
puts resultat 
Si vous souhaitez supprimer les retours à la ligne, la fonction chomp peut être utilisée.

2. Les entrées/sorties

Lorsqu’un processus est créé, il peut être intéressant de communiquer avec lui par son flux d’entrée standard (STDIN) pour simuler des commandes utilisateurs et obtenir également la réponse par son flux de sortie standard (STDOUT).

La méthode popen exécute un processus et retourne un objet de classe IO qui va servir à écrire et lire ce processus. Lors de la communication avec ce processus, les choses ne sont pas aussi simples car il faut parfois attendre que le processus soit fermé pour obtenir la réponse.

Dans...

Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.PNG
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Les Threads
Suivant
Réseaux