Conoscere in tempo reale il file-device "pts" dell'ultimo Terminale appena aperto

Da Gambas-it.org - Wikipedia.

Per conoscere in tempo reale il file-device "pts" dell'ultimo Terminale appena aperto, ci serviremo di un ciclo oppure, ancora meglio, dell'oggetto Timer.

Vediamo un possibile esempio pratico:

Private tempus As Timer
Private ss As New String[]


Public Sub Main()

  Dim b As Byte
  Dim pts As String
 
  With tempus = New Timer As "Tempus"
    .Delay = 10
    .Start
  End With
 
' Verifica quanti file-device ci sono nella cartella "/dev/pts":
  b = Dir("/dev/pts").Count
  Print "Sono attualmente presenti "; b; " file-device nella cartella '/dev/pts':\n"
  
' Assegna ad ogni elemento della variabile array di tipo Stringa "ss" il nome di ciascun
' file-device 'pts' presente nella cartella '/dev/pts/' all'avvio del programma:
  For Each pts In Dir("/dev/pts")
    Print pts,
    ss.Push(pts)
  Next
  Write "\n\n"
  
End

Public Sub Tempus_Timer()   ' Consente di verificare se un Terminale sia stato aperto.
 
  Dim pts As String
  Dim fl As File
 
' Effettua la verifica di quale file-device corrisponde a quello del Terminale appena aperto:
' il file-device nuovo, non presente nella variabile vettore di tipo stringa, è quello del terminale:
  For Each pts In Dir("/dev/pts")
    If Not ss.Exist(pts) Then
      Print "Aperto Terminale associato al file '/dev/pts/"; pts; "'"
      ss.Push(pts)
' Scriviamo qualcosa nel Terminale che è stato appena aperto:
      fl = Open "/dev/pts" &/ pts For Write
      Write #fl, "Questo è\nil primo testo.\n"
      Wait 0.1
      Write #fl, "Questo è\nil secondo testo.\n"
      fl.Close
    Endif
  Next
  
  ss.Remove(0, ss.Count)
  
  For Each pts In Dir("/dev/pts")
    ss.Push(pts)
  Next
  
End