system

system — Appelle un programme externe via le système.

Description

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.

Syntaxe

ires system_i itrig, Scmd, [inowait]
kres system ktrig, Scmd, [knowait]

Initialisation

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.

Exécution

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] 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.

Exemples

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> 


Crédits

Auteur: John ffitch
2007

Nouveau dans la version 5.06