GNU/Linux >> Tutoriales Linux >  >> Linux

Comportamiento de escritura predeterminado:¿O_TRUNC o O_APPEND?

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.


Linux
  1. ¿Cómo escribir un archivo en otro?

  2. ¿Escribir todo el desplazamiento hacia atrás de Tmux en un archivo?

  3. ¿Cómo escribir un archivo con C en Linux?

  4. abra un archivo con el programa predeterminado en node-webkit

  5. setfacl para restablecer el archivo a los permisos predeterminados?

Cómo crear y editar el archivo .htaccess predeterminado de WordPress

Bash:escribir en archivo

Cómo cambiar el archivo de registro de Sudo predeterminado en Linux

Cómo agregar el archivo .box descargado a Vagrant en Linux

¿Cómo encontrar el administrador de archivos predeterminado?

Configuración de permisos de archivo en carga VSFTP