Linguaggio C - open(), creat()

NOME

open(), creat() - apre e possibilmente crea un file o device

SINOPSI

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int creat(const char *pathname, mode_t mode);

DESCRIZIONE

La funzione open() apre il pathname predisponendolo per le operazioni di I/O come indicato dai flags.

L'argomento flags deve essere uno dei valori:
O_RDONLY Apre un file per la lettura.
La posizione e' all'inizio del file.
O_WRONLY Apre un file per la scrittura. La posizione e' all'inizio del file.
O_RDWR Apre un file la lettura e scrittura.
La posizione e' all'inizio del file.

Inoltre flags puo' essere in or bit a bit con nessuno, uno o piu' dei seguenti valori:
O_CREAT Se pathname non esiste viene creato.
In mancanza di questo flag, viene tornato un errore.
O_EXCL Quando usato con O_CREAT, se il file e' esistente viene tornato un errore a la open fallisce.
O_TRUNC Un file esistente verra' troncato.
O_APPEND Apre il pathname in append. Le successive operazioni di scrittura verranno accodate alle informazioni gia' presenti nel pathname.
O_NOFOLLOW Se il pathname e' un link simbolico, allora la open fallisce.
O_DIRECTORY Se il pathname non e' una directory, allora la open fallisce.
O_NONBLOCK
O_NDELAY
Il pathname e' aperto in modalita' "non-blocking".
Ne' la open() e ne le successive operazioni di I/O sul file descriptor tornato, non causano il processo ad attese.
O_SYNC Il pathname e' aparto per I/O sincrono.
Le scritture sul file, causano l'attesa del processo fino al completamento delle operazioni fisiche sull'hardware sottostante.

mode e' utilizzato in caso di creazione del file, per impostare i diritti di accesso al pathname in riferimento al filesystem Unix. L'argomento mode viene poi combinato con 'umask' del processo secondo l'algoritmo (mode & ~umask). Sono disponibili delle #define da utilizzare in combinazione or fra loro, in alternativa ad un valore intero.

La funzione creat() e' equivalente a:

open(pathname, O_WRONLY|O_CREAT|O_TRUNC, mode);

VALORE DI RITORNO

Le funzioni open() e creat() in caso di successo ritornano il file descriptor (rappresentato dal piu' piccolo intero non ancora utilizzato) o -1 in caso di fallimento.

CONFORME A

SVr4, SVID, POSIX, X/OPEN, BSD 4.3

VEDI ANCHE

lseek() read() write() close() link() symlink() unlink() stat(), lstat(), fstat() fcntl() ioctl() dup(), dup2() access() fopen()


Indice-C Indice linguaggio C
Indice librerie Indice librerie C
At Home Umberto Zappi Home Page
Indice funzioni Indice funzioni C