table of contents
other languages
other sections
WRITE(2) | Linux Programmer's Manual | WRITE(2) |
NOME¶
write - Scrive su un descrittore di fileSINTASSI¶
#include <unistd.h>DESCRIZIONE¶
write() scrive fino a count byte contenuti in buf nel descrittore di file fd.VALORI RESTITUITI¶
Se è andato tutto bene, la funzione restituisce il numero di byte scritti (zero indica che non è stato scritto nulla). In caso di errore viene restituito -1 , e errno viene impostato di conseguenza.ERRORI¶
- EAGAIN
- Il descrittore di file fd è stato marcato come non bloccante usando O_NONBLOCK e la scrittura verrà bloccata.
- EBADF
- fd non è un decrittore di file valido o non è aperto in scrittura.
- EFAULT
- buf è al di fuori del proprio spazio di indirizzamento accessibile.
- EFBIG
- È stato fatto un tentativo di scrivere un file che supera la massima dimensione del file o il limite di dimensione del file del processo definito dall'implementazione, o di scrivere ad una posizione successiva al massimo offset permesso.
- EINTR
- La chiamata è stata interrotta da un segnale prima che sia stato scritto qualunque dato.
- EINVAL
- fd è attaccato a un oggetto su cui non si può scrivere; o il file è stato aperto con il flag O_DIRECT, e l'indirizzo specificato in buf, o il valore specificato in count, o l'offset del file corrente non è correttamente allineato.
- EIO
- Un errore I/O di basso livello è accaduto mentre si modificava l'inode.
- ENOSPC
- Il dispositivo contenente il file a cui fa riferimento fd non ha spazio per i dati.
- EPIPE
- fd è connesso a una pipe o un socket la cui lettura è chiusa. Quando ciò accade il processo di scrittura riceverà anche un segnale SIGPIPE. (Quindi il valore restituito in scrittura è visto solo se il programma intercetta, blocca o ignora questo segnale).
CONFORME A¶
SVr4, 4.3BSD, POSIX.1-2001.NOTE¶
Un ritorno con successo da write() non dà alcuna garanzia che i dati siano stati trasferiti sul disco. Infatti in alcune implementazioni errate, esso non garantisce che questo spazio sia stato riservato per i dati con successo. Il solo modo per essere sicuri è di chiamare fsync(2) dopo che si è eseguita la scrittura di tutti i propri dati.VEDERE ANCHE¶
close(2), fcntl(2), fsync(2), ioctl(2), lseek(2), open(2), pwrite(2), read(2), select(2), writev(2), fwrite(3)18 giugno 2007 | Linux |