2009-05-20 7 views
6

Sé cómo configurar atributos de archivos en Windows utilizando la función SetFileAttributes. Pero me pregunto si hay una función C/C++ nativa que pueda hacer esto también.Configuración de atributos de archivos mediante el uso de funciones nativas de C/C++

+0

"Función C/C++ nativa" probablemente no sea lo que estás pidiendo. SetFileAttributes() es una función C nativa. Supongo que estás buscando una función portátil y estandarizada. – JesperE

+0

Una de las motivaciones para los lenguajes de scripting como Perl o Python es que intentan esforzarse al máximo por proporcionar una API multiplataforma para cosas que no son universalmente multiplataforma. –

Respuesta

11

No, no hay. Ni el Estándar C++ ni el Estándar C especifican tales funciones.

La razón de esto es que hay muy poco común de funciones comunes en esta área en diferentes sistemas operativos. Por ejemplo, los sistemas de operación tipo UNIX tienen un atributo "ejecutable", mientras que los sistemas operativos tipo Windows usan la extensión de archivo para determinar la ejecutabilidad.

4

En Windows hay una función _chmod que imita el comportamiento de la función chmod en Unix.

4

Si por "nativo", quiere decir en la biblioteca estándar C, entonces no. Los "atributos" del archivo son una extensión específica del sistema operativo, por lo que no aparecerán en ningún conjunto de funciones estándar. Si estamos dispuestos a extender nuestro mandato a POSIX, existen funciones como fchmod, pero esto solo maneja los modos de archivo de estilo UNIX, que no son tan expresivos como los atributos de archivos de Windows.

En general, puede responder cualquier pregunta sobre el formulario "¿Hay una función/objeto ESTÁNDAR para hacer algo ESPECÍFICO DEL SO" diciendo "Probablemente, si ESTÁNDAR solo existe para SO. De lo contrario, no".

Cuestiones relacionadas