system — Appelle un programme externe via le système.
Opcode du greffon system_call.
system et system_i appellent toute commande externe comprise par le système d'exploitation, comme le fait la fonction system() du langage C. system_i ne s'exécute que pendant l'initialisation, tandis que system s'exécute pendant l'initialisation aussi bien que durant l'exécution.
Scmd -- chaîne de commande.
itrig -- s'il est supérieur à zéro, l'opcode exécute la commande demandée ; sinon c'est une opération nulle.
ktrig -- s'il est supérieur à zéro et différent de la valeur qu'il avait lors du précédent cycle de contrôle, l'opcode exécute la commande demandée. La valeur précédente initiale est prise à zéro.
inowait, knowait -- s'il est différent de zéro, la commande est exécutée en arrière-plan et l'on attend pas son résultat (0 par défaut).
ires, kres -- le code retourné par la commande en mode attente et si la commande est exécutée. Retourne zéro dans les autres cas.
Un seul opcode system peut exécuter plus d'une commande si l'on entoure la chaîne avec des accolades doubles {{ }}.
Note | |
---|---|
Cet opcode dépendant fortement du système, il faut l'utiliser avec beaucoup de précautions (ou ne pas l'utiliser) si l'on désire rester neutre par rapport à la plateforme. |
Voici un exemple de l'opcode system_i. Il utilise le fichier system.csd.
Exemple 1060. Exemple de l'opcode system_i.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in -n ; no sound ; For Non-realtime ouput leave only the line below: ; -o system.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ; Waits for command to execute before continuing ires system_i 1,{{ ps date cd ~/Desktop pwd ls -l whois csounds.com }} print ires turnoff endin instr 2 ; Runs command in a separate thread ires system_i 1,{{ ps date cd ~/Desktop pwd ls -l whois csounds.com }}, 1 print ires turnoff endin </CsInstruments> <CsScore> i 1 0 1 i 2 5 1 e </CsScore> </CsoundSynthesizer>