open

xxx La función open abre un fichero ya existente, retornando un descriptor de fichero. La función tiene este prototipo:

ejemplo_openxxx Para usar estas constantes, han de incluir la cabecera <fcntl.h>. Los modos pueden combinarse, simplemente sumando las constantes, o haciendo un “or” lógico, como en este ejemplo:

O_CREAT | O_WRONLY

xxx El parámetro acceso sólo se ha de emplear cuando se incluya la opción O_CREAT, y es un entero que define los permisos de acceso al fichero creado. Consulten en la bibliografía cómo se codifican los permisos.

xxx La función open retorna un descriptor válido si el fichero se ha podido abrir, y el valor -1 en caso de error.

Permisos iniciales

xxx Cuando creamos un archivo usando el indicador O_CREAT junto con open, tenemos que usar la fórmula de tres parámetros. modo, el tercer parámetro, está hecho de un OR a nivel de bit de los indicadores definidos en el archivo de cabecera sys/stat.h. Que son los siguientes:

open_permisosopen_ejemplocrea un archivo denominado MiArchivo, con permisos de lectura para el propietario y permiso de ejecución para otros, y solo tiene estos permisos.

ejemplo_open_2Tenemos un par de factores que pueden afectar a los permisos de los archivos:

  • Los permisos especificados se usan únicamente si el archivo está siendo creado.
  • La máscara de usuario (especificado por el comando umask) afecta a los permisos de los archivos creados.

xxx El valor modo proporcionado en la llamada open se ha añadido (AND) con el valor inverso a la máscara del usuario en tiempo de ejecución. Por ejemplo, si la máscara de usuario está configurada en 001 y el indicador de modo S_IXOTH está especificado, el archivo no será creado con un permiso de ejecución porque la máscara de usuario especifica que no proporcionará otro permiso de ejecución. Los indicadores de llamada open y creat son, de hecho, peticiones para configurar permisos. Que se configuren o no los permisos solicitados depende del valor de tiempo de ejecución de umask.

atras

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s