Readlink ()

Da Gambas-it.org - Wikipedia.
Versione del 3 gen 2025 alle 16:59 di Vuott (Discussione | contributi) (Creata pagina con "La funzione esterna '''readlink()''', dichiarata nel file header ''/usr/include/unistd.h'': ssize_t readlink (const char *__restrict __path, char *__restrict __buf, size_t __...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

La funzione esterna readlink(), dichiarata nel file header /usr/include/unistd.h:

ssize_t readlink (const char *__restrict __path, char *__restrict __buf, size_t __len)

legge i contenuti di un collegamento simbolico.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern readlink(__path As String, __buf As Byte[], __len As Long) As Long In "libc:6"

Semplice esempio di uso in Gambas:

Library "libc:6"


' ssize_t readlink (const char *path, char *buf, size_t len)
' Read the contents of the symbolic link PATH into no more than LEN bytes of BUF.
Private Extern readlink(path As String, buf As Byte[], _len As Long) As Long


Public Sub Main()

 Dim buf As New Byte[32]
 Dim sl As String
 Dim l As Long

 sl = "/percorso/del/collegamento/simbolico"

 l = readlink(sl, buf, buf.Count) 

 Print buf.ToString(0, l)

End