Sistemas operativos modernos

r Abre archivos para entrada y salida. 7 inhandie = CreateFile{"data", G EN ER IC_R EAD , O, NULL, OPEN_EX IST ING , O, NULL); outhandle = CreateFile("newf", GENER IC_W R ITE, O, NULL, CREATE_ALWAYS, F ILE_ATTR IBUTE_NORMAL, NULL); r Copia el archivo. V do { s = ReadFile{inhandle, buffer, BUF_SIZE , &count, NULL); if {s && count > 0) WriteFile(outhandle, buffer, count, &ocnt, NULL); } while (s > O && count > 0); r Cierra los archivos. */ CloseHandle(inhandle); CloseHandle(outhandle); Figura 11-32. Fragmento de programa para copiar un archivo empleando las funcio­ nes de la API de W i n d o w s 2000. frado y tolerancia a fallos. Estas funciones y sus implementaciones se tratarán en una sección posterior. Las principales funciones API para administrar directorios se dan en la figura 11-33, otra vez junto con sus equivalentes más cercanos en UNIX. Las funciones no requieren mayor ex­ plicación. Función API Win32 UNIX Descripción CreateDirectory mkdir Crea un nuevo directorio RemoveDirectory rmdir Elimina un directorio vacío FindFirstFile opendir Inicializa para comenzar a leer las entradas de un directorio FindNextFile readdir Lee la siguiente entrada de directorio MoveFile rename Pasa un archivo de un directorio a otro SetCurrentDirectory chdir Cambia el directorio de trabajo actual Figura 11-33. Principales funciones de la API W i n 3 2 para administrar directorios. La segunda columna da el equivalente má s cercano en UNIX, si existe. 11.7.3 Implementación del sistema de archivos Windows 2000 NTFS es un sistema de archivos muy complejo y avanzado. Se diseñó desde cero, en lugar de ser un intento por mejorar el anfiguo sistema de archivos de MS-DOS. A continuación exami­ naremos varias de sus características, comenzando por su estructura; luego pasaremos a la bús­ queda de nombres de archivo, la compresión y el cifrado de archivos.

RkJQdWJsaXNoZXIy MjI4NDcx