Directorio de trabajoEn computación el directorio de trabajo de un proceso es un directorio de un sistema de archivos jerárquico, si lo hay[nb 1], dinámicamente asociado a cada proceso. También es llamado el directorio actual de trabajo (CWD por sus siglas en inglés: current working directory) o simplemente directorio actual.[1] Cuándo un proceso se refiere a un archivo usando un nombre de archivo simple o una ruta relativa (a diferencia de una ruta absoluta que parte de un directorio raíz, la referencia es interpretada como relativa al directorio de trabajo del proceso. Así, por ejemplo, un proceso con un directorio de trabajo /mi-carpeta que intenta crear el archivo prueba.txt terminará creando el archivo /mi-carpeta/prueba.txt En sistemas operativosVéase también: Shell (informática)
En la mayoría de las interfaces de línea de comandos de DOS y UNIX, así como en el intérprete de línea de comandos cmd.exe y PowerShell de Windows, el directorio de trabajo se puede cambiar utilizando los comandos cd o chdir. En Unix, el comando pwd devuelve la ruta completa del directorio de trabajo, mientras en DOS y Windows se puede obtener lanzando los comandos cd o chdir sin ningún argumento o parámetro ( mientras que en Unix lanzar el comando cd sin argumentos llevará al usuario a su carpeta de usuario). En scripts, para conocer el directorio actual, se puede utilizar la variable de entorno PWD (en shells Unix/Linux), o la pseudo variable de entorno CD en command.com y cmd.exe de Windows, pero no en OS/2 ni DOS. También _CWD, _CWDS, _CWP y _CWPS (bajo 4DOS, 4OS2, 4NT etc.)[2]. De esta manera no se necesita iniciar un programa externo para tener esta habilidad. En BSD se puede utilizar la función getcwd[3]. COMMAND.COM en DR-DOS 7.02 y superiores provee el comando ECHOS, una variante del comando ECHO que omite el avance de línea final.[4][2] Esto puede utilizarse para crear un trabajo en batch temporal almacenando el directorio de trabajo en una variable de entorno, como CD para su uso posterior, por ejemplo: ECHOS SET CD=> SETCD.BAT CHDIR >> SETCD.BAT CALL SETCD.BAT DEL SETCD.BAT De manera alternativa, en DOS Multiusuario y DR-DOS 7.02 o superior, varios comandos internos y externos soportan el argumento /B (de "Batch").[5] Esto modifica la salida de los comandos para que sea adecuada como entrada directa de la línea de comandos (cuando se redirecciona a un archivo batch) o para ser utilizada como parámetro para otros comandos. Dónde CHDIR emitiría una ruta como El directorio de trabajo también es mostrado por el token $P[nb 2] del comando Bajo DOS, la ruta absoluta de los directorios de trabajo de todos los volúmenes lógicos se almacena internamente en una estructura tipo arreglo llamada la Estructura de directorio actual (CDS por sus siglas en inglés: Current Directory Structure), que se asigna dinámicamente en tiempo de arranque para contener el número de elementos necesarios para todas las unidades lógicas (o lo que se haya definido en la directiva LASTDRIVE de Esta estructura impone un límite de 66 caracteres como longitud máxima de la ruta completa en cada directorio de trabajo e, implicitamente, limita también la máxima profundidad de subdirectorios disponible.[7] DOS Plus y anteriores versiones de DR DOS (hasta DR DOS 6.0, con BDOS 6.7 en 1991) no tienen dicha limitación[8][10][2] gracias a su implementación utilizando DOS emulation sobre un DOS Concurrente- (y también el kernel derivado CP/M-86-), que internamente organiza los sub-directorios como vínculos relativos a los directorios padre, en lugar de como rutas absolutas.[8][10] Desde que PalmDOS (con BDOS 7.0) y DR DOS 6.0 (1992 update con BDOS 7.1) y superiores cambiaron para utilizar CDS para máxima compatibilidad con programas DOS, enfrentaron las mismas limitaciones presentes en otros DOS.[8][10] En lenguajes de programaciónLa mayoría de lenguajes de programación provee una interfaz a las funciones del sistema de archivos del sistema operativo, incluyendo la habilidad de consultar y cambiar el directorio de trabajo del programa. En el lenguaje C, la función POSIX Existe una función equivalente en otros lenguajes. En Visual Basic usualmente se llama En Delphi/Object pascal la función se llama A diferencia del API de Windows y la función del lenguaje C, ni el lenguaje de programación Java ni la Máquina virtual Java soportan directamente Véase también
Notas
Referencias
Lecturas recomendadas (en inglés)
Enlaces externos
|