2010-07-07 19 views
7

Supongamos que se crea un archivo para escribir así:¿Qué permisos tiene un archivo escrito con fstream?

std::ofstream my_file("filename", std::ios_base::out | std::ios_base::trunc); 

¿Cómo están los permisos de este fichero determinado? He tenido un programa ejecutándose durante la noche generando archivos una vez por minuto, algunos son 0644 pero otros son 0660, y no hay nada en mi código que deba cambiarlo. (He visto que algunas implementaciones permiten que un tercer argumento establezca los permisos del archivo; estoy usando gcc 4.1.2, que no parece ser compatible con esto).

+0

Como han dicho otros, los atributos dependen de umask. Como dijo que su código no modifica los atributos del archivo, quizás otras aplicaciones lo hagan? – PeterK

+0

Ok, eso tiene sentido, no estoy seguro de lo que mi programa estaba haciendo, pero lo vigilaré en caso de que vuelva a suceder. – jrb

+0

Ví mi "problema" original de nuevo: creo que fue causado por compilar y ejecutar mi aplicación contra versiones ligeramente diferentes de la misma biblioteca compartida, que estaba comenzando a causar que sucedieran otras cosas raras. Todavía creo que la pregunta vale la pena preguntar :) – jrb

Respuesta

0

attrs predeterminados se configuran con el comando umask. no explica los cambios en sus archivos, pero puede ser útil para usted

Cuestiones relacionadas