La función writev
toma una matriz de estructura iovec como argumento de entrada¿Cómo funciona la lista de escritura de E/S internamente?
writev(int fd, const struct iovec *iov, int iovcnt);
La entrada es una lista de los buffers de memoria que necesitan ser escritos en un archivo (por ejemplo). Lo que yo quiero saber es:
¿Se writev internamente hacer esto:
for (each element in iov) write(element)
de tal manera que cada elemento de iov
está escrito a presentar en un separo de E/S llaman? O ¿writev
escribe todo en el archivo en una llamada de E/S sola?
No entiendo la última línea "cuando se opera en una terminal". Además, ¿dónde exactamente en el src de Linux compruebas la implementación de writev? – jitihsk
"Cuando se opera en un terminal" significa cuando el descriptor de archivo se refiere a un dispositivo terminal. En cuanto a dónde en la fuente, http://lxr.linux.no/#linux+v3.2.6/fs/read_write.c#L809 –