Visualizzare il tempo trascorso dall'ultimo avvio del sistema

Da Gambas-it.org - Wikipedia.

Per visualizzare il tempo trascorso dall'ultimo avvio del proprio sistema, si andrà a leggere mediante l'aiuto di un Puntatore il primo dato presente nel file: /proc/uptime. Otterremo qui questo risultato senza l'uso di Shell.

Nella routine principale apriremo il file "/proc/uptime", ponendolo sotto osservazione ai soli fini di far sollevare l'evento di lettura, e così di leggere con una nuova e diversa apertura del medesimo file i dati utili, ogni qual volta vi sono dati appunto da leggere.

Una lettura diretta del file nella routine "File_Read()" mediante la variabile di tipo File, ottenuta con l'istruzione Open della routine principale Sub Main(), non risulta possibile: seppure assenti errori, non vengono restituiti dati.


Mostriamo un esempio pratico:

Private fl As File


Public Sub Main()
 
' Apriamo il file solo per far sollevare l'evento di lettura ogni qual volta v'è qualcosa di nuovo da leggervi:
 fl = Open "/proc/uptime" For Read Watch

End



Public Sub File_Read()
 
 Dim s As String
 Dim p As Pointer
 Dim ar As File

' Apriamo nuovamente il file, ma ora per la lettura e la conseguente raccolta dei dati:
  ar = Open "/proc/uptime" For Read 

' Leggiamo solo i primi 7 byte del flusso:
  Read #ar, s, 7

' Poiché dopo i 7 caratteri vi è un byte di valore zero (Nul), ci serviamo del "Puntatore" per escludere tutto ciò che v'è da quel valore zero in poi:
  p = VarPtr(s)
 
' Viene finalmente mostrato il risultato in console:
  Print String@(p)

' Poniamo ad esempio un ritardo di 5 decimi di secondo, anche al fine di impedire un uso eccessivo della CPU:
  Sleep 0.5

  ar.Close
 
End