Differenze tra le versioni di "Creat ()"
Riga 1: | Riga 1: | ||
− | La funzione | + | 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. Viene restituito un valore di tipo ''Intero'' che rappresenta il ''descrittore'' del file creato. | crea un nuovo file o ne riscrive uno esistente. Viene restituito un valore di tipo ''Intero'' che rappresenta il ''descrittore'' del file creato. | ||
Riga 13: | Riga 13: | ||
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 delle 08: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