Differenze tra le versioni di "Chmod ()"
Da Gambas-it.org - Wikipedia.
Riga 20: | Riga 20: | ||
− | + | Public Sub Main() | |
Dim err As Integer | Dim err As Integer | ||
<FONT color=Gray>' ''Consente la lettura e la scrittura del file al solo proprietario:''</font> | <FONT color=Gray>' ''Consente la lettura e la scrittura del file al solo proprietario:''</font> | ||
− | + | err = <FONT color=#B22222>chmod_C</font>("<FONT color=gray>''/percorso/del/file''</font>", S_IRUSR Or S_IWUSR) | |
− | + | If err < 0 Then Error.Raise("Impossibile cambiare i permessi al file !") | |
− | '' | + | End |
+ | |||
+ | |||
+ | |||
+ | =Riferimenti= | ||
+ | * https://www.gnu.org/software/libc/manual/html_node/Permission-Bits.html | ||
+ | * Vedere questo file di sistema: ''/usr/include/linux/stat.h'' |
Versione delle 08:48, 3 dic 2023
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 ' int chmod (const char *__file, __mode_t __mode) ' Set file access permissions for FILE to MODE. Private Extern chmod_C(__file As String, mode As Integer) As Integer In "libc:6" Exec "chmod" Public Sub Main() Dim err As Integer ' 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
Riferimenti
- https://www.gnu.org/software/libc/manual/html_node/Permission-Bits.html
- Vedere questo file di sistema: /usr/include/linux/stat.h