Sistemas operativos modernos
Función API Win32 UNIX Descripción CreateFile Open Crea un archivo o abre uno existente; devuelve un identificador DeleteFile unlink Destruye un archivo existente CloseHandIe close Cierra un archivo ReadFile read Lee datos de un archivo WriteFile write Escribe datos en un archivo SetFilePointer Iseek Coloca el apuntador de archivo en un lugar específico GetFileAttributes stat Devuelve las propiedades del archivo LockFile fcnti Bloquea una región del archivo para exclusión mutua UnlockFile fcnti Desbloquea una región del archivo Figura 11-31. Las principales funciones de la API W i n 3 2 para E/S de archivos. La se gunda columna da el equivalente má s cercano en UNIX. función FlIeOpen. No hemos mostrado los parámetros para las funciones de la API porque son demasiado voluminosos. Por ejemplo, CreatePile tiene siete parámetros, que pueden resumir se a grandes rasgos como sigue: 1. Un apuntador al nombre del archivo que se creará o abrirá. 2. Indicadores que señalan si el archivo puede leerse, escribirse o ambas cosas. 3. Indicadores que señalan si múltiples procesos pueden abrir el archivo a la vez. 4. Un apuntador al descriptor de seguridad, que indica quién puede tener acceso al archivo. 5. Indicadores que señalan qué hacer si el archivo existe/no existe. 6 . Indicadores que se ocupan de atributos como archivado, compresión, etcétera. 7. El identificador de un archivo cuyos atributos deben clonarse para el nuevo archivo. Las siguientes seis funciones API de la figura 11-31 son similares a las llamadas al sistema correspondientes en UNIX. Las úlfimas dos permiten bloquear y desbloquear una región del ar chivo para que un proceso pueda tener exclusión mutua garanfizada en su acceso a él. Con estas funciones API es posible escribir un procedimiento para copiar un archivo, aná logo a la versión UNIX de la figura 6-5. Este fragmento de código (sin verificación de errores) se muestra en la figura 11-32. Se ha diseñado para imitar nuestra versión UNIX. En la práctica no habria que escribir un programa de copiado de archivo porque CopyFile es una función de la API (que ejecuta algo parecido a este programa como procedimiento de biblioteca). NTFS de Windows 2000 es un sistema de archivos jerárquico, similar al de UNIX. Sin embargo, el separador de nombres de componentes es \ en lugar de /, un fósil heredado de MS-DOS. Existe el concepto de directorio de trabajo actual, y los nombres de ruta pueden ser relativos o absolutos. Se manejan enlaces duros y simbólicos; los primeros se implementan con múltiples entradas de directorio, igual que en UNIX, y los segundos se implementan con puntos de reanálisis (que veremos más adelante en el capítulo). Además, se manejan compresión, ci-
RkJQdWJsaXNoZXIy MjI4NDcx