Al usar el O_WRONLY
marca por sí mismo, abre el archivo para escritura, retiene el contenido del archivo existente y coloca el puntero del archivo al comienzo del archivo. Cualquier escritura sobrescribe el contenido existente.
Si usa lseek
para reposicionar el puntero del archivo, las escrituras posteriores se producirán en el desplazamiento reposicionado.
Este comportamiento contrasta con O_TRUNC
que trunca el contenido del archivo cuando se abre, y con O_APPEND
lo que obliga a que todas las escrituras ocurran al final del archivo.
Ninguno.
-
Por defecto, el archivo se abre con el cursor colocado al principio. La escritura sobrescribe los bytes al principio del archivo.
-
O_TRUNC
hace que el archivo se trunque si existe. -
O_APPEND
hace que las escrituras se agreguen al final del archivo en lugar de sobrescribir al principio. Esta bandera es persistente. Si mueve el cursor a otra parte para leer datos, siempre se reubica al final del archivo antes de cada escritura.
Las banderas son ortogonales y no son mutuamente excluyentes. Incluso puede combinarlos si desea truncar inicialmente el archivo y asegurarse de que todas las escrituras posteriores siempre se agreguen.