La forma portátil de comprobar los permisos es intentar abrir el archivo y comprobar si se realizó correctamente. . Si no, y errno
(de la cabecera <cerrno>
se establece en el valor EACCES
[sí, con una S], entonces usted no tiene los permisos necesarios Esto debería funcionar tanto en Unix/Linux y Windows Ejemplo de stdio:.
FILE *fp = fopen("results.txt", "w");
if (fp == NULL) {
if (errno == EACCES)
cerr << "Permission denied" << endl;
else
cerr << "Something went wrong: " << strerror(errno) << endl;
}
Iostreams funcionará un poco diferente. que yo sepa, no garantizan para establecer errno
en ambas plataformas, o reportar errores más específicos que simplemente "fracaso".
Como escribió Jerry Ataúd, no dependen de acceso independiente funciones de prueba ya que su programa será propenso a la carrera condiciones y agujeros de seguridad.
gracias, pero todavía no entiendo cómo puedo saber si tengo permisos para escribir el archivo en el disco. – Aviadjo
si lo intento y no tengo permisos supongo que el programa se colapsará y quiero evitarlo al marcar antes. ¿hay algún comando para verificar los permisos de escritura en el disco (escribir un nuevo archivo)? – Aviadjo
¿Por qué debe colapsar su programa? : S –