Differenze tra le versioni di "Creat ()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "La funzione '''''creat( )''''', dichiarata nel file header di sistema "''/usr/include/fcntl.h''" int creat (const char *__file, mode_t __mode) crea un nuovo file o ne riscriv...")
 
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
La funzione '''''creat( )''''', dichiarata nel file header di sistema "''/usr/include/fcntl.h''"
+
La funzione '''creat()''', dichiarata nel file header di sistema "''/usr/include/fcntl.h''"
 
  int creat (const char *__file, mode_t __mode)
 
  int creat (const char *__file, mode_t __mode)
crea un nuovo file o ne riscrive uno esistente.
+
crea un nuovo file o ne riscrive uno esistente. Viene restituito un valore di tipo ''Intero'' che rappresenta il ''descrittore'' del file creato.
  
 
La funzione ''creat( )'' crea file, ma non può aprire il file esistente. Se si utilizza ''creat( )'' su un file esistente, il file verrà troncato e può essere solo scritto.
 
La funzione ''creat( )'' crea file, ma non può aprire il file esistente. Se si utilizza ''creat( )'' su un file esistente, il file verrà troncato e può essere solo scritto.
  
 
Il secondo parametro è intero che rappresenta i permessi di accesso attribuiti al file. I valori, che rappresentano tali permessi, sono indicati nei file header:
 
Il secondo parametro è intero che rappresenta i permessi di accesso attribuiti al file. I valori, che rappresentano tali permessi, sono indicati nei file header:
* /usr/include/x86_64-linux-gnu/bits/stat.h
+
* ''/usr/include/x86_64-linux-gnu/bits/stat.h''
* /usr/include/x86_64-linux-gnu/sys/stat.h
+
* ''/usr/include/x86_64-linux-gnu/sys/stat.h''
 +
(vedi anche: ''/usr/include/cpio.h'')
  
  
 
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta:
 
Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern'', nonché bisognerà dichiarare la libreria di C: ''libc.so.6'', nella quale la funzione è contenuta:
 
  Private <FONT color=#B22222>Extern creat</font>(__file As String, __mode As Integer) As Integer In "<FONT color=#B22222>libc:6</font>"
 
  Private <FONT color=#B22222>Extern creat</font>(__file As String, __mode As Integer) As Integer In "<FONT color=#B22222>libc:6</font>"
 
  
 
Mostriamo un semplice esempio, nel quale viene creato un file con permessi di lettura e scrittura per l'utente, e di sola lettura per il gruppo e gli altri.  
 
Mostriamo un semplice esempio, nel quale viene creato un file con permessi di lettura e scrittura per l'utente, e di sola lettura per il gruppo e gli altri.  

Versione attuale delle 09:23, 24 set 2022

La funzione creat(), dichiarata nel file header di sistema "/usr/include/fcntl.h"

int creat (const char *__file, mode_t __mode)

crea un nuovo file o ne riscrive uno esistente. Viene restituito un valore di tipo Intero che rappresenta il descrittore del file creato.

La funzione creat( ) crea file, ma non può aprire il file esistente. Se si utilizza creat( ) su un file esistente, il file verrà troncato e può essere solo scritto.

Il secondo parametro è intero che rappresenta i permessi di accesso attribuiti al file. I valori, che rappresentano tali permessi, sono indicati nei file header:

  • /usr/include/x86_64-linux-gnu/bits/stat.h
  • /usr/include/x86_64-linux-gnu/sys/stat.h

(vedi anche: /usr/include/cpio.h)


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

Private Extern creat(__file As String, __mode As Integer) As Integer In "libc:6"

Mostriamo un semplice esempio, nel quale viene creato un file con permessi di lettura e scrittura per l'utente, e di sola lettura per il gruppo e gli altri.

Library "libc:6"

Private S_IRUSR As Integer = 256
Private S_IWUSR As Integer = 128
Private S_IRGRP As Integer = 32
Private S_IWGPR As Integer = 16
Private S_IROTH As Integer = 4
Private S_IWOTH As Integer = 2

' int creat (const char *__file, mode_t __mode)
' Create and open FILE, with mode MODE.
Private Extern creat(__file As String, __mode As Integer) As Integer

' int close(int _fd)
' Close the file descriptor FD.
Private Extern close_C(_fd As Integer) As Integer Exec "close"


Public Sub Main()
 
 Dim mode, fd As Integer
  
  mode = S_IRUSR Or S_IWUSR Or S_IRGRP Or S_IROTH
  
  fd = creat("/tmp/prova", mode)
  If fd < 0 Then Error.Raise("Impossibile creare il file !")
  
  close_C(fd)
  
End



Riferimenti