Lanciare da un'applicazione Gambas il Terminale e far partire da esso un programma
Se si intende lanciare da un'applicazione Gambas il Terminale e far partire da esso un qualsiasi programma, è possibile utilizzare alcune analoghe modalità.
Uso di Shell
Mostriamo un esempio di apertura del Terminale gnome-terminal mediante Shell, e da lì avvio del programma vlc per l'esecuzione di un file audio:
Public Sub Main() Shell System.Find("gnome-terminal") & " -x " & System.Find("vlc") & " /percorso/file/audio" End
Lo stesso codice, ma ora usando il terminale xterm:
Public Sub Main() Shell System.Find("xterm") & " -e " & System.Find("vlc") & " /percorso/file/audio" End
Uso della funzione esterna execv( )
Mostriamo un esempio di apertura del Terminale gnome-terminal mediante la funzione esterna execv( ), dichiarata nel file header "/usr/include/unistd.h":
' int execv (const char *__path, char *const __argv[]) ' Execute PATH with arguments ARGV and environment from `environ'. Private Extern execv(path As String, argv As String[]) as Integer In "libc:6" Public Sub Main() execv(System.Find("gnome-terminal"), [" ", "-x", System.Find("vlc"), "/percorso/file/audio"]) End
Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale xterm:
' int execv (const char *__path, char *const __argv[]) ' Execute PATH with arguments ARGV and environment from `environ'. Private Extern execv(path As String, argv As String[]) as Integer In "libc:6" Public Sub Main() execv(System.Find("xterm"), [" ", "-e", System.Find("vlc"), "/percorso/file/audio"]) End
Uso della funzione esterna system( )
Mostriamo un esempio di apertura del Terminale gnome-terminal mediante la funzione esterna execv( ), dichiarata nel file header "/usr/include/stdlib.h":
' int system(const char *__command) ' Execute the given line as a shell command. Private Extern system_C(__command As String) As Integer In "libc:6" Exec "system" Public Sub Main() system_C(System.Find("gnome-terminal") & " -x " & System.Find("vlc") & "/percorso/file/audio") End
Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale xterm:
' int system(const char *__command) ' Execute the given line as a shell command. Private Extern system_C(__command As String) As Integer In "libc:6" Exec "system" Public Sub Main() system_C(System.Find("xterm") & " -e " & System.Find("vlc") & "/percorso/file/audio") End