Differenze tra le versioni di "Intercettare quanto viene scritto manualmente nella console o in un Terminale"
(Creata pagina con 'Tenendo aperto il progetto di un applicativo, è possibile scrivere manualmente nella console dell'IDE e raccogliere dall'applicativo medesimo o da altro applicativo ciò che ...') |
|||
(14 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
Tenendo aperto il progetto di un applicativo, è possibile scrivere manualmente nella console dell'IDE e raccogliere dall'applicativo medesimo o da altro applicativo ciò che è stato scritto. | Tenendo aperto il progetto di un applicativo, è possibile scrivere manualmente nella console dell'IDE e raccogliere dall'applicativo medesimo o da altro applicativo ciò che è stato scritto. | ||
− | <BR>Alla pressione del tasto "''Invio''", tutto ciò che sarà stato scritto nella console, verrà raccolto, e potrà essere dunque gestito. | + | <BR>Alla pressione del tasto "''Invio'' " (''Return'' ), tutto ciò che sarà stato scritto nella console, verrà raccolto, e potrà essere dunque gestito. <SUP>[[[#Note|Nota 1]]]</sup> |
− | + | ==L'applicativo intercetta i dati scritti nella propria console== | |
− | |||
Di seguito mostreremo i casi in cui nella console di un progetto viene scritto del testo, manualmente dall'utente o ricevuto perché inviati dal programma stesso o dall'esterno. Successivamente, affinché tale testo possa essere raccolto, sarà necessario <SPAN style="text-decoration:underline">premere il tasto ''Invio''</span>. | Di seguito mostreremo i casi in cui nella console di un progetto viene scritto del testo, manualmente dall'utente o ricevuto perché inviati dal programma stesso o dall'esterno. Successivamente, affinché tale testo possa essere raccolto, sarà necessario <SPAN style="text-decoration:underline">premere il tasto ''Invio''</span>. | ||
− | + | ===Uso di "Input"=== | |
E' possibile utilizzare il comando ''Input'' per raccogliere quanto scritto nella console del programma (si dovrà comunque sempre premere il tasto "Invio"). | E' possibile utilizzare il comando ''Input'' per raccogliere quanto scritto nella console del programma (si dovrà comunque sempre premere il tasto "Invio"). | ||
Il comando ''Input'' verrà utilizzato senza specificare il flusso, cosicché verrà intercettato lo standard ''input''. | Il comando ''Input'' verrà utilizzato senza specificare il flusso, cosicché verrà intercettato lo standard ''input''. | ||
− | + | Public Sub Main() | |
Dim s As String | Dim s As String | ||
− | + | Input s | |
− | + | Print s | |
− | '''End''' | + | End |
+ | o anche con ''File.In'' (in questo esempio se si preme semplicemente solo il tasto "''Invio''", si viene avvertiti di ciò, ed il ciclo consente di reinserire ed inviare caratteri, ovviamente privi di spazio, dalla console): | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim s As String | ||
+ | |||
+ | Repeat | ||
+ | Input #File.In, s | ||
+ | If IsNull(s) Then Print "E' stato premuto il solo tasto 'Invio' !" | ||
+ | Until Not IsNull(s) | ||
+ | |||
+ | Print s | ||
+ | |||
+ | End | ||
+ | o anche usando aprendo il dispositivo speciale " ''/dev/stdin'' " in lettura, ma con " ''For Read'' ": | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim s As String | ||
+ | Dim fl As File | ||
+ | |||
+ | fl = Open "/dev/stdin" For Read | ||
+ | |||
+ | Input #fl, s | ||
+ | |||
+ | Print s | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | Si potrà usare anche il primo file (identificato con il numero zero") della cartella "fd" del processo del programma Gambas lanciato: | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim s As String | ||
+ | Dim fl As File | ||
+ | |||
+ | fl = Open "/proc" &/ CStr(Application.Id) &/ "fd/0" For Read | ||
+ | |||
+ | Input #fl, s | ||
+ | |||
+ | Print s | ||
+ | |||
+ | fl.Close | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | ===Uso di "Line Input"=== | ||
+ | L'istruzione "Line Input" consente rispetto al precedente "Input" di intercettare/leggere una stringa di caratteri, nella quale siano presenti anche spazi bianchi (codice ASCII &h20): | ||
+ | Public Sub Main() | ||
+ | |||
+ | Dim s As String | ||
+ | |||
+ | Line Input s | ||
+ | |||
+ | Print s | ||
+ | |||
+ | End | ||
+ | |||
− | + | ===Ponendo sotto ''osservazione'' file speciali della console=== | |
− | In quest'altro caso la console riceve dati, ad essa inviati tramite file speciali posti sotto ''osservazione''. | + | In quest'altro caso la console riceve dati, ad essa inviati tramite file speciali posti sotto ''osservazione''. Scritto manualmente il testo in console, si dovrà premere anche in questo caso il tasto "Invio". <SUP>[[[#Note|Nota 2]]]</sup> |
− | + | Private fl As File | |
− | + | Public Sub Main() | |
− | + | fl = Open "<FONT color=#B22222>/dev/stdin</font>" For Read Watch | |
<FONT color=gray>' ''oppure si può utilizzare il file-device "tty":'' | <FONT color=gray>' ''oppure si può utilizzare il file-device "tty":'' | ||
− | + | '''fl = Open "/dev/tty" For Read Watch'''</font> | |
− | <FONT color=gray>' ''oppure si può utilizzare il relativo file-descriptor in "/proc/self/fd/''' | + | <FONT color=gray>' ''oppure si può utilizzare il relativo file-descriptor in "/proc/self/fd/'''0'''":'' |
− | + | '''fl = Open "/proc/self/fd/'''0'''" For Read Watch'''</font> | |
− | <FONT color=gray>' ''oppure anche il relativo file speciale in "/dev/pts" | + | <FONT color=gray>' ''oppure anche il relativo file speciale in "/dev/pts" che bisognerà individuare, caso per caso:'' |
− | + | '''fl = Open "/dev/pts/''numero''" For Read Watch'''</font> | |
− | |||
− | + | End | |
− | + | Public Sub File_Read() | |
Dim s As String | Dim s As String | ||
− | + | Print fl.ReadLine() | |
+ | |||
+ | <FONT color=gray>' ''oppure usando "Line Input":'' | ||
+ | '''Line Input #fl, s''' | ||
+ | '''Print s'''</font> | ||
+ | |||
+ | End | ||
+ | Mostriamo di seguito un esempio, nel quale i caratteri scritti manualmente in una console, e poi inviati con il consueto tasto "Invio" della tastiera, vengono graficamente disegnati in una ''DrawingArea''. | ||
+ | Private DrawingArea1 As DrawingArea | ||
+ | Private fl As File | ||
+ | Private ss As New String[] | ||
+ | Private nn As New Integer[] | ||
+ | Private n As Integer | ||
+ | |||
+ | |||
+ | Public Sub _new() | ||
− | '''End''' | + | With Me |
+ | .W = Screen.AvailableWidth * 0.5 | ||
+ | .H = Screen.AvailableHeight * 0.5 | ||
+ | .Center | ||
+ | .Arrangement = Arrange.Fill | ||
+ | End With | ||
+ | With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" | ||
+ | .X = 0 | ||
+ | .Y = 0 | ||
+ | .Background = Color.RGB(255, 250, 230) | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Form_Open() | ||
+ | |||
+ | <FONT color=gray>' ''Pone sotto "osservazione" in Lettura il file-device dello "Standard Output":''</font> | ||
+ | fl = Open "/dev/stdout" For Input Watch | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub File_Read() | ||
+ | |||
+ | Dim s As String | ||
+ | |||
+ | Line Input #fl, s | ||
+ | |||
+ | ss.Push(s) | ||
+ | <FONT color=gray>' ''Determina la distanza verticale fra una riga testuale e quella precedente:''</font> | ||
+ | nn.Push(n) | ||
+ | n += DrawingArea1.Font.TextHeight(s) | ||
+ | |||
+ | DrawingArea1.Refresh | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub DrawingArea1_Draw() | ||
+ | |||
+ | Dim i As Integer | ||
+ | |||
+ | With Paint | ||
+ | For i = 0 To ss.Max | ||
+ | .DrawText(ss[i], 4, nn[i], .Font.TextWidth(ss[i]), .Font.TextHeight(ss[i]), Align.Left) | ||
+ | Next | ||
+ | .End | ||
+ | End With | ||
+ | |||
+ | End | ||
− | + | ==L'applicativo intercetta e scrive ''in tempo reale'' i dati scritti manualmente in un Terminale== | |
In modo del tutto analogo al precedente, in questo altro esempio, mentre si scrive manualmente in un terminale, il programma Gambas intercetta e riproduce ''in tempo reale'' quanto si sta in quel momento scrivendo con la tastiera. Dalle prove fatte non sempre alla prima pressione sul tasto il dato/carattere, inviato dalla tastiera, viene intercettato dal programma Gambas. Si è avuto un migliore risultato, per intercettare un carattere, premendo il medesimo tasto velocemente due volte. | In modo del tutto analogo al precedente, in questo altro esempio, mentre si scrive manualmente in un terminale, il programma Gambas intercetta e riproduce ''in tempo reale'' quanto si sta in quel momento scrivendo con la tastiera. Dalle prove fatte non sempre alla prima pressione sul tasto il dato/carattere, inviato dalla tastiera, viene intercettato dal programma Gambas. Si è avuto un migliore risultato, per intercettare un carattere, premendo il medesimo tasto velocemente due volte. | ||
Il codice è semplicemente il seguente: | Il codice è semplicemente il seguente: | ||
− | + | Private pr As Process | |
− | + | Public Sub Form_Open() | |
− | <FONT color=gray>' ''Bisognerà individuare, caso per caso, | + | <FONT color=gray>' ''Bisognerà individuare, caso per caso, il file speciale in "/dev/pts/", relativo al Terminale:''</font> |
− | + | pr = Shell "cat < /dev/pts/'''<FONT color=#B22222>N</font>'''" For Read As "pr" | |
− | |||
− | + | End | |
− | + | Public Sub pr_Read() | |
Dim s As String | Dim s As String | ||
− | + | Read #pr, s, -256 | |
<FONT color=gray>' ''Vediamo il risultato scritto nella console ed in una "TextEdit":''</font> | <FONT color=gray>' ''Vediamo il risultato scritto nella console ed in una "TextEdit":''</font> | ||
− | + | Print s | |
− | + | TextEdit1.Text &= s | |
− | + | End | |
− | |||
− | |||
− | + | ==Un programma-Gambas invia e riceve testo ad/da altro applicativo-Gambas== | |
In questo caso un applicativo-Gambas invia del testo nella console di un altro applicativo-Gambas. Successivamente si scriverà del testo nella console di quest'altro applicatvo, e <SPAN style="text-decoration:underline">si premerà il tasto "Invio"</span> della tastiera. Il primo applicativo riceverà nella sua console quanto scritto ed inviato dal secondo applicativo. | In questo caso un applicativo-Gambas invia del testo nella console di un altro applicativo-Gambas. Successivamente si scriverà del testo nella console di quest'altro applicatvo, e <SPAN style="text-decoration:underline">si premerà il tasto "Invio"</span> della tastiera. Il primo applicativo riceverà nella sua console quanto scritto ed inviato dal secondo applicativo. | ||
− | + | Private fl As File | |
− | + | Private fl2 As File | |
− | + | Public Sub Form_Open() | |
<FONT color=gray>' ''Per inviare del testo alla console dell'altro applicativo:''</font> | <FONT color=gray>' ''Per inviare del testo alla console dell'altro applicativo:''</font> | ||
− | + | fl = Open "/proc/''numero_processo_dell'altro_applicativo''/fd/1" For Write | |
<FONT color=gray>' ''oppure si può utilizzare il relativo file speciale in "/dev/pts":'' | <FONT color=gray>' ''oppure si può utilizzare il relativo file speciale in "/dev/pts":'' | ||
− | + | '''fl = Open "/dev/pts/''numero''" For Write'''</font> | |
− | |||
<FONT color=gray>' ''Per ricevere quanto scritto nella console dell'altro applicativo ed inviato:''</font> | <FONT color=gray>' ''Per ricevere quanto scritto nella console dell'altro applicativo ed inviato:''</font> | ||
− | + | fl2 = Open "/proc/''numero_processo_dell'altro_applicativo''/fd/0" For Read Watch | |
<FONT color=gray>' ''oppure si può utilizzare il relativo file speciale in "/dev/pts":'' | <FONT color=gray>' ''oppure si può utilizzare il relativo file speciale in "/dev/pts":'' | ||
− | + | '''fl2 = Open "/dev/pts/''numero''" For Read Watch'''</font> | |
− | + | End | |
− | + | Public Sub Button1_Click() | |
<FONT color=gray>' ''Si invia del testo alla console dell'altro applicativo:''</font> | <FONT color=gray>' ''Si invia del testo alla console dell'altro applicativo:''</font> | ||
− | + | Write #fl, "testo qualsiasi" | |
<FONT color=gray>' ''oppure si può utilizzare "Print":'' | <FONT color=gray>' ''oppure si può utilizzare "Print":'' | ||
− | + | '''Print''' #fl, "testo qualsiasi"</font> | |
<FONT color=gray>' ''o anche "Output To" e "Print":'' | <FONT color=gray>' ''o anche "Output To" e "Print":'' | ||
− | + | '''Output To''' #fl | |
− | + | '''Print''' "testo qualsiasi"</font> | |
− | + | End | |
− | + | Public Sub File_Read() | |
Dim s As String | Dim s As String | ||
<FONT color=gray>' ''Si legge quanto scritto nella console dell'altro applicativo ed inviato:''</font> | <FONT color=gray>' ''Si legge quanto scritto nella console dell'altro applicativo ed inviato:''</font> | ||
− | + | Read #fl2, s, -256 | |
+ | |||
+ | TextEdit1.Text = TextEdit1.Text & s | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | |||
+ | =Note= | ||
+ | [1] Vedere anche queste pagine: | ||
+ | * [[Scrivere nello Standard Input di un Terminale con un programma Gambas 'a riga di comando']] | ||
+ | * [[Indirizzare dati da un programma ad un altro e ad un Terminale]] | ||
+ | * [[Usare due programmi Gambas contemporaneamente mediante Process, lo standard Output e lo standard Input]] | ||
+ | |||
+ | [2] In via generale abbiamo che l'uso di: | ||
+ | * <FONT color=#B22222>''/dev/pts/numero''</font> è possibile per <SPAN style="text-decoration:underline">scrivere</span> in console o Terminale; per <SPAN style="text-decoration:underline">leggere</span> il testo scritto ed inviato (ossia premuto il tasto "Invio" della tastiera) dalla medesima console o da medesimo Terminale, nonché per leggere ''in tempo reale'' quanto scritto nel Terminale. | ||
+ | Vediamo un esempio pratico, nel quale, scrivendo in un Terminale aperto un testo preceduto dal seguente comando bash: | ||
+ | ~$ echo > /dev/pts/<FONT color=gray>numero_corrispondente_a_''File.Out.Term.Name''_di_Gambas</font> 'testo qualsiasi' | ||
+ | e premendo successivamente il tasto "Invio", il programma Gambas intercetterà e stamperà in Console quanto scritto e inviato dal Terminale. | ||
+ | Private fl As File | ||
+ | |||
+ | Public Sub Main() | ||
− | + | fl = Open File.Out.Term.Name For Input Watch | |
+ | |||
+ | End | ||
− | ''' | + | Public Sub File_Read() |
+ | |||
+ | Dim s As String | ||
+ | |||
+ | Line Input #fl, s | ||
+ | |||
+ | Print s | ||
+ | |||
+ | End | ||
+ | * <FONT color=#B22222>''/proc/num_processo/fd/0''</font> è possibile per <SPAN style="text-decoration:underline">scrivere</span> e per <SPAN style="text-decoration:underline">leggere</span> in console o Terminale; | ||
+ | * <FONT color=#B22222>''/dev/stdin''</font> e <FONT color=#B22222>''/dev/stdout''</font> è possibile solo per <SPAN style="text-decoration:underline">leggere</span> il testo scritto ed inviato (ossia premuto il tasto "Invio" della tastiera) dalla medesima console o dal medesimo Terminale. | ||
− | + | =Riferimenti= | |
− | == | + | * https://it.wikipedia.org/wiki/Canali_standard#Descrizione |
− | |||
− | * | ||
− | |||
− |
Versione attuale delle 09:16, 7 gen 2024
Tenendo aperto il progetto di un applicativo, è possibile scrivere manualmente nella console dell'IDE e raccogliere dall'applicativo medesimo o da altro applicativo ciò che è stato scritto.
Alla pressione del tasto "Invio " (Return ), tutto ciò che sarà stato scritto nella console, verrà raccolto, e potrà essere dunque gestito. [Nota 1]
Indice
L'applicativo intercetta i dati scritti nella propria console
Di seguito mostreremo i casi in cui nella console di un progetto viene scritto del testo, manualmente dall'utente o ricevuto perché inviati dal programma stesso o dall'esterno. Successivamente, affinché tale testo possa essere raccolto, sarà necessario premere il tasto Invio.
Uso di "Input"
E' possibile utilizzare il comando Input per raccogliere quanto scritto nella console del programma (si dovrà comunque sempre premere il tasto "Invio"). Il comando Input verrà utilizzato senza specificare il flusso, cosicché verrà intercettato lo standard input.
Public Sub Main() Dim s As String Input s Print s End
o anche con File.In (in questo esempio se si preme semplicemente solo il tasto "Invio", si viene avvertiti di ciò, ed il ciclo consente di reinserire ed inviare caratteri, ovviamente privi di spazio, dalla console):
Public Sub Main() Dim s As String Repeat Input #File.In, s If IsNull(s) Then Print "E' stato premuto il solo tasto 'Invio' !" Until Not IsNull(s) Print s End
o anche usando aprendo il dispositivo speciale " /dev/stdin " in lettura, ma con " For Read ":
Public Sub Main() Dim s As String Dim fl As File fl = Open "/dev/stdin" For Read Input #fl, s Print s fl.Close End
Si potrà usare anche il primo file (identificato con il numero zero") della cartella "fd" del processo del programma Gambas lanciato:
Public Sub Main() Dim s As String Dim fl As File fl = Open "/proc" &/ CStr(Application.Id) &/ "fd/0" For Read Input #fl, s Print s fl.Close End
Uso di "Line Input"
L'istruzione "Line Input" consente rispetto al precedente "Input" di intercettare/leggere una stringa di caratteri, nella quale siano presenti anche spazi bianchi (codice ASCII &h20):
Public Sub Main() Dim s As String Line Input s Print s End
Ponendo sotto osservazione file speciali della console
In quest'altro caso la console riceve dati, ad essa inviati tramite file speciali posti sotto osservazione. Scritto manualmente il testo in console, si dovrà premere anche in questo caso il tasto "Invio". [Nota 2]
Private fl As File Public Sub Main() fl = Open "/dev/stdin" For Read Watch ' oppure si può utilizzare il file-device "tty": fl = Open "/dev/tty" For Read Watch ' oppure si può utilizzare il relativo file-descriptor in "/proc/self/fd/0": fl = Open "/proc/self/fd/0" For Read Watch ' oppure anche il relativo file speciale in "/dev/pts" che bisognerà individuare, caso per caso: fl = Open "/dev/pts/numero" For Read Watch End Public Sub File_Read() Dim s As String Print fl.ReadLine() ' oppure usando "Line Input": Line Input #fl, s Print s End
Mostriamo di seguito un esempio, nel quale i caratteri scritti manualmente in una console, e poi inviati con il consueto tasto "Invio" della tastiera, vengono graficamente disegnati in una DrawingArea.
Private DrawingArea1 As DrawingArea Private fl As File Private ss As New String[] Private nn As New Integer[] Private n As Integer Public Sub _new() With Me .W = Screen.AvailableWidth * 0.5 .H = Screen.AvailableHeight * 0.5 .Center .Arrangement = Arrange.Fill End With With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1" .X = 0 .Y = 0 .Background = Color.RGB(255, 250, 230) End With End Public Sub Form_Open() ' Pone sotto "osservazione" in Lettura il file-device dello "Standard Output": fl = Open "/dev/stdout" For Input Watch End Public Sub File_Read() Dim s As String Line Input #fl, s ss.Push(s) ' Determina la distanza verticale fra una riga testuale e quella precedente: nn.Push(n) n += DrawingArea1.Font.TextHeight(s) DrawingArea1.Refresh End Public Sub DrawingArea1_Draw() Dim i As Integer With Paint For i = 0 To ss.Max .DrawText(ss[i], 4, nn[i], .Font.TextWidth(ss[i]), .Font.TextHeight(ss[i]), Align.Left) Next .End End With End
L'applicativo intercetta e scrive in tempo reale i dati scritti manualmente in un Terminale
In modo del tutto analogo al precedente, in questo altro esempio, mentre si scrive manualmente in un terminale, il programma Gambas intercetta e riproduce in tempo reale quanto si sta in quel momento scrivendo con la tastiera. Dalle prove fatte non sempre alla prima pressione sul tasto il dato/carattere, inviato dalla tastiera, viene intercettato dal programma Gambas. Si è avuto un migliore risultato, per intercettare un carattere, premendo il medesimo tasto velocemente due volte.
Il codice è semplicemente il seguente:
Private pr As Process Public Sub Form_Open() ' Bisognerà individuare, caso per caso, il file speciale in "/dev/pts/", relativo al Terminale: pr = Shell "cat < /dev/pts/N" For Read As "pr" End Public Sub pr_Read() Dim s As String Read #pr, s, -256 ' Vediamo il risultato scritto nella console ed in una "TextEdit": Print s TextEdit1.Text &= s End
Un programma-Gambas invia e riceve testo ad/da altro applicativo-Gambas
In questo caso un applicativo-Gambas invia del testo nella console di un altro applicativo-Gambas. Successivamente si scriverà del testo nella console di quest'altro applicatvo, e si premerà il tasto "Invio" della tastiera. Il primo applicativo riceverà nella sua console quanto scritto ed inviato dal secondo applicativo.
Private fl As File Private fl2 As File Public Sub Form_Open() ' Per inviare del testo alla console dell'altro applicativo: fl = Open "/proc/numero_processo_dell'altro_applicativo/fd/1" For Write ' oppure si può utilizzare il relativo file speciale in "/dev/pts": fl = Open "/dev/pts/numero" For Write ' Per ricevere quanto scritto nella console dell'altro applicativo ed inviato: fl2 = Open "/proc/numero_processo_dell'altro_applicativo/fd/0" For Read Watch ' oppure si può utilizzare il relativo file speciale in "/dev/pts": fl2 = Open "/dev/pts/numero" For Read Watch End Public Sub Button1_Click() ' Si invia del testo alla console dell'altro applicativo: Write #fl, "testo qualsiasi" ' oppure si può utilizzare "Print": Print #fl, "testo qualsiasi" ' o anche "Output To" e "Print": Output To #fl Print "testo qualsiasi" End Public Sub File_Read() Dim s As String ' Si legge quanto scritto nella console dell'altro applicativo ed inviato: Read #fl2, s, -256 TextEdit1.Text = TextEdit1.Text & s End
Note
[1] Vedere anche queste pagine:
- Scrivere nello Standard Input di un Terminale con un programma Gambas 'a riga di comando'
- Indirizzare dati da un programma ad un altro e ad un Terminale
- Usare due programmi Gambas contemporaneamente mediante Process, lo standard Output e lo standard Input
[2] In via generale abbiamo che l'uso di:
- /dev/pts/numero è possibile per scrivere in console o Terminale; per leggere il testo scritto ed inviato (ossia premuto il tasto "Invio" della tastiera) dalla medesima console o da medesimo Terminale, nonché per leggere in tempo reale quanto scritto nel Terminale.
Vediamo un esempio pratico, nel quale, scrivendo in un Terminale aperto un testo preceduto dal seguente comando bash:
~$ echo > /dev/pts/numero_corrispondente_a_File.Out.Term.Name_di_Gambas 'testo qualsiasi'
e premendo successivamente il tasto "Invio", il programma Gambas intercetterà e stamperà in Console quanto scritto e inviato dal Terminale.
Private fl As File Public Sub Main() fl = Open File.Out.Term.Name For Input Watch End Public Sub File_Read() Dim s As String Line Input #fl, s Print s End
- /proc/num_processo/fd/0 è possibile per scrivere e per leggere in console o Terminale;
- /dev/stdin e /dev/stdout è possibile solo per leggere il testo scritto ed inviato (ossia premuto il tasto "Invio" della tastiera) dalla medesima console o dal medesimo Terminale.