Chmod ()

Da Gambas-it.org - Wikipedia.
Versione del 25 nov 2014 alle 04:46 di Vuott (Discussione | contributi) (Creata pagina con 'La funzione '''chmod()''' della libreria di C int chmod (const char *__file, __mode_t __mode) cambia i permessi relativi ad un file. Volendola utilizzare in Gambas, bisogne...')

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

La funzione chmod() della libreria di C

int chmod (const char *__file, __mode_t __mode)

cambia i permessi relativi ad un file.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta. Da sottolineare che, poiché questa funzione esterna di C "chmod()" è omonima alla funzione di Gambas "Chmod()", bisognerà assegnarle un nome a piacere, ma si dovrà anche richiamare il suo vero nome con il comando Exec.
Dunque avremo ad esempio:

Private Extern chmod_C(__file As String, mode As Integer) As Integer In "libc:6" Exec "chmod"

Nel secondo parametro mode va inserito un numero intero, o più numeri anche in combinazione con l'operatore Or, che definisce il nuovo permesso che si va ad impostare del file.


Semplice esempio di uso in Gambas:

Private Const S_IRUSR As Integer = 256
Private Const S_IWUSR As Integer = 128

Private Extern chmod_C(__file As String, mode As Integer) As Integer In "libc:6" Exec "chmod"


Public Sub Main()

' Consente la lettura e la scrittura del file al solo proprietario:
 err = chmod_C("/percorso/del/file", S_IRUSR Or S_IWUSR)
 If err <> 0 Then Error.Raise("Impossibile cambiare i permessi al file !") 
 
End