Chmod (): differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| (5 versioni intermedie di uno stesso utente non sono mostrate) | |||
| Riga 4: | Riga 4: | ||
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 " | 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()" è <SPAN style="text-decoration:underline">omonima</span> alla funzione di Gambas ''Chmod'', bisognerà assegnarle un nome a piacere, ma si dovrà anche richiamare il suo vero nome con il comando ''Exec''. | ||
<BR>Dunque avremo ad esempio: | <BR>Dunque avremo ad esempio: | ||
Private <FONT color=#B22222>Extern chmod_C</font>(__file As String, mode As Integer) As Integer In "<FONT color=#B22222>libc:6</font>" <FONT color=#B22222>'''Exec "chmod"'''</font> | Private <FONT color=#B22222>Extern chmod_C</font>(__file As String, mode As Integer) As Integer In "<FONT color=#B22222>libc:6</font>" <FONT color=#B22222>'''Exec "chmod"'''</font> | ||
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. | |||
Nel secondo parametro ''mode'' va inserito un numero intero, o più numeri anche in combinazione con l'operatore '' | |||
Semplice esempio di uso in Gambas: | Semplice esempio di uso in Gambas: | ||
| Riga 20: | Riga 18: | ||
Public Sub Main() | |||
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("''/percorso/del/file''", S_IRUSR Or S_IWUSR) | err = <FONT color=#B22222>chmod_C</font>("<FONT color=darkgreen>''/percorso/del/file''</font>", S_IRUSR Or S_IWUSR) | ||
If err < | 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 attuale delle 16:08, 15 giu 2024
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