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