Differenze tra le versioni di "Impostazione dei permessi di un file con la funzione 'g chmod' del API di libglib-2.0"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 17: Riga 17:
  
  
Per poter utilizzare la funzione esterna ''g_chmod()'', è necessario avere installata nel sistema e richiamare nel programma Gambas la libreria condivisa: "''libglib-2.0.so.0.6400.6'' "
+
Per poter utilizzare la funzione esterna "g_chmod()", è necessario avere installata nel sistema e richiamare nel programma Gambas la libreria condivisa: "''libglib-2.0.so.0.7800.4'' ".
  
 
Mostriamo alcuni esempi, nei quali - per maggiore chiarezza didattica - nel parametro ''Mode'' si porranno visibili, come addendi di una somma, i valori di tutti e tre gli utenti.
 
Mostriamo alcuni esempi, nei quali - per maggiore chiarezza didattica - nel parametro ''Mode'' si porranno visibili, come addendi di una somma, i valori di tutti e tre gli utenti.
  
Esempio in cui si consentono a tutti e tre gli utenti sia la scrittura che la lettura, ma non l'eseguibilità di un file:
+
====Esempio in cui si consentono a tutti e tre gli utenti sia la scrittura che la lettura, ma non l'eseguibilità di un file====
  Library "libglib-2.0:0.6400.6"
+
  Library "libglib-2.0:0.7800.4"
 
   
 
   
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
Riga 29: Riga 29:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim err As Integer
 
   Dim err As Integer
 
    
 
    
   err = g_chmod("<FONT Color=gray>''/percorso/del/file''</font>", 384 + 48 + 6)
+
   err = g_chmod("<FONT Color=darkgreen>''/percorso/del/file''</font>", 384 + 48 + 6)
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
    
 
    
  '''End'''
+
  End
 
+
====Esempio in cui si nega ogni azione su un file a tutti e tre gli utenti====
 
+
  Library "libglib-2.0:0.7800.4"
 
 
Esempio in cui si nega ogni azione su un file a tutti e tre gli utenti:
 
  Library "libglib-2.0:0.6400.6"
 
 
   
 
   
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
Riga 48: Riga 45:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim err As Integer
 
   Dim err As Integer
 
    
 
    
   err = g_chmod("<FONT Color=gray>''/percorso/del/file''</font>", 0 + 0 + 0)
+
   err = g_chmod("<FONT Color=darkgreen>''/percorso/del/file''</font>", 0 + 0 + 0)
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
    
 
    
  '''End'''
+
  End
 
+
====Esempio in cui si consente la sola lettura ed eseguibilità di un file al solo utente ''Proprietario''====
 
+
  Library "libglib-2.0:0.7800.4"
 
 
Esempio in cui si consente la sola lettura ed eseguibilità di un file al solo utente ''Proprietario'':
 
  Library "libglib-2.0:0.6400.6"
 
 
   
 
   
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
Riga 67: Riga 61:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim err As Integer
 
   Dim err As Integer
Riga 74: Riga 68:
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
    
 
    
  '''End'''
+
  End
 
+
====Esempio in cui si consente la sola lettura di un file a tutti e tre gli utenti====
 
+
  Library "libglib-2.0:0.7800.4"
 
 
Esempio in cui si consente la sola lettura di un file a tutti e tre gli utenti:
 
  Library "libglib-2.0:0.6400.6"
 
 
   
 
   
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
 
  <FONT Color=gray>' ''int g_chmod (const gchar *filename, int mode)''
Riga 86: Riga 77:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
 
   Dim err As Integer
 
   Dim err As Integer
 
    
 
    
   err = g_chmod("<FONT Color=gray>''/percorso/del/file''</font>", 256 + 32 + 4)
+
   err = g_chmod("<FONT Color=darkgreen>''/percorso/del/file''</font>", 256 + 32 + 4)
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
   If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
 
    
 
    
  '''End'''
+
  End
  
  

Versione attuale delle 04:52, 22 mag 2024

La funzione g_chmod() della libreria esterna libglib-2.0 consente di impostare/modificare i permessi di un file in riferimento ai suoi tre possibili utenti: Proprietario, Gruppo ed Altri.

La sua sintassi è:

int g_chmod (const gchar *filename, int mode)

laddove il parametro mode è un valore intero formato dalla somma dei valori delle impostazioni dei permessi per i tre utenti.

I valori attribuibili sono 4 per ciascuna classe di utenti considerata:

  • il primo (sempre zero) significa negazione di ogni permesso sul file;
  • il secondo consente la sola scrittura del file;
  • il terzo consente la sola lettura del file;
  • il quarto consente la lettura e la scrittura del file.

In particolare:

  • i valori riferiti all'utente Altri sono: 0, 2, 4, 6 (quindi partendo da 0 un comando ogni 2 valori). Aggiungendo 1 ad uno dei predetti valori, si consente anche l'esecuzione del file.
  • i valori riferiti all'utente Gruppo sono: 0, 16, 32, 48 (quindi partendo da 0 un comando ogni 16 valori). Aggiungendo 8 ad uno dei predetti valori, si consente anche l'esecuzione del file.
  • i valori riferiti all'utente Proprietario sono: 0, 128, 256, 384 (quindi partendo da 0 un comando ogni 128 valori). Aggiungendo 8 ad uno dei predetti valori, si consente anche l'esecuzione del file.


Per poter utilizzare la funzione esterna "g_chmod()", è necessario avere installata nel sistema e richiamare nel programma Gambas la libreria condivisa: "libglib-2.0.so.0.7800.4 ".

Mostriamo alcuni esempi, nei quali - per maggiore chiarezza didattica - nel parametro Mode si porranno visibili, come addendi di una somma, i valori di tutti e tre gli utenti.

Esempio in cui si consentono a tutti e tre gli utenti sia la scrittura che la lettura, ma non l'eseguibilità di un file

Library "libglib-2.0:0.7800.4"

' int g_chmod (const gchar *filename, int mode)
' Sets the permissions of a file system object.
Private Extern g_chmod(filename As String, mode As Integer) As Integer


Public Sub Main()
 
 Dim err As Integer
 
 err = g_chmod("/percorso/del/file", 384 + 48 + 6)
 If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
  
End

Esempio in cui si nega ogni azione su un file a tutti e tre gli utenti

Library "libglib-2.0:0.7800.4"

' int g_chmod (const gchar *filename, int mode)
' Sets the permissions of a file system object.
Private Extern g_chmod(filename As String, mode As Integer) As Integer


Public Sub Main()
 
 Dim err As Integer
 
 err = g_chmod("/percorso/del/file", 0 + 0 + 0)
 If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
  
End

Esempio in cui si consente la sola lettura ed eseguibilità di un file al solo utente Proprietario

Library "libglib-2.0:0.7800.4"

' int g_chmod (const gchar *filename, int mode)
' Sets the permissions of a file system object.
Private Extern g_chmod(filename As String, mode As Integer) As Integer


Public Sub Main()
 
 Dim err As Integer
 
 err = g_chmod("/percorso/del/file", 264 + 0 + 0)
 If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
  
End

Esempio in cui si consente la sola lettura di un file a tutti e tre gli utenti

Library "libglib-2.0:0.7800.4"

' int g_chmod (const gchar *filename, int mode)
' Sets the permissions of a file system object.
Private Extern g_chmod(filename As String, mode As Integer) As Integer


Public Sub Main()
 
 Dim err As Integer
 
 err = g_chmod("/percorso/del/file", 256 + 32 + 4)
 If err < 0 Then Error.Raise("Impossibile modificare i permessi del file !")
  
End


Riferimenti