рабочем каталоге

редактировать
текущее используемый каталог иерархической файловой системы, связанный с запущенным процессом в операционной системе

В вычислениях, рабочий каталог процесса процесса представляет собой каталог иерархической файловой системы, если есть, динамически связанный с каждым процессом. Иногда его называют текущим рабочим каталогом (CWD), например. функцию BSD getcwd(3) или просто текущий каталог . Когда процесс обращается к файлу, используя простое имя файла или относительный путь (в отличие от файла, обозначенного полным путем из корневого каталога ), ссылка интерпретируется относительно рабочий каталог процесса. Так, например, процесс с рабочим каталогом / rabbit-shoes, который просит создать файл foo.txt, в конечном итоге создаст файл /rabbit-shoes/foo.txt.

Содержание
  • 1 В операционных системах
  • 2 В языках программирования
  • 3 См. Также
  • 4 Примечания
  • 5 Ссылки
  • 6 Дополнительная литература
  • 7 Внешние ссылки
В операционные системы

В большинстве компьютерных файловых систем каждый каталог имеет запись (обычно с именем «.»), которая указывает на сам каталог.

В большинстве DOS и UNIX командных оболочек, а также в интерпретаторах командной строки Microsoft Windows cmd.exe и Windows PowerShell, рабочий каталог можно изменить с помощью команд CD или CHDIR . В оболочках Unix команда pwd выводит полный путь к рабочему каталогу; эквивалентной командой в DOS и Windows является CDили CHDIRбез аргументов (тогда как в Unix cd, используемый без аргументов, возвращает пользователя в его / ее домашний каталог ).

Переменная среды PWD(в оболочках Unix / Linux) или переменные псевдо-среды CD (в Windows COMMAND. COM и cmd.exe, но не в OS / 2 и DOS), или _CWD, _CWDS, _CWPи _CWPS4DOS, 4OS2, 4NT и т. Д.) Можно использовать в сценариях, поэтому нет необходимости запускать внешнюю программу. Microsoft Windows ярлыки файлов имеют возможность хранить рабочий каталог.

COMMAND.COM в DR-DOS 7.02 и выше предоставляет ECHOS, вариант команды ECHO без исключения завершающий перевод строки. Это можно использовать для создания временного пакетного задания, сохраняющего рабочий каталог в переменной среды, например CD, для последующего использования, например:

ECHOS SET CD =>SETCD.BAT CHDIR>>SETCD.BAT CALL SETCD.BAT DEL SETCD.BAT

В качестве альтернативы, в Multiuser DOS и DR-DOS 7.02 и выше различные внутренние и внешние команды поддерживают параметр / B(для «Партии»). Это изменяет вывод команд, чтобы он стал пригодным для прямого ввода в командную строку (при перенаправлении его в пакетный файл) или использования в качестве параметра для других команд (используя его в качестве ввода для другой команды). Если CHDIRвыдаст путь к каталогу, например C: \ DOS, команда типа CHDIR / Bвыдаст CHDIR C: \ DOSвместо этого, чтобы CHDIR / B>RETDIR.BATсоздавал временное пакетное задание, позволяющее вернуться в этот каталог позже.

Рабочий каталог также отображается токеном $ Pкоманды PROMPT . Чтобы приглашение было коротким даже внутри структур глубоких подкаталогов., DR-DOS 7.07 COMMAND.COM поддерживает токен $ Wдля отображения только самого глубокого уровня подкаталога. Итак, если по умолчанию PROMPT $ P $ Gприведет к f.e. в C:\DOS>или C:\DOS\DRDOS>вместо PROMPT $ N: $ W $ Gбудет получено C: DOS>и C:DRDOS>соответственно. Аналогичная возможность (с использованием $ Wи $ w) была также добавлена ​​в 4DOS.

В DOS абсолютные пути к рабочие каталоги всех томов хранятся внутри в виде массива данных, называемого (), который динамически выделяется во время загрузки для хранения необходимого количества слотов для всех дисков (или как определено в LASTDRIVE. Эта структура накладывает ограничение на длину 66 символов на полный путь каждого рабочего каталога и, таким образом, неявно также ограничивает максимально возможную глубину подкаталогов. DOS Plus и более старые выпуски DR DOS (до DR DOS 6.0 в 1991 г.) не имело такого ограничения из-за их реализации с использованием эмуляции DOS поверх Concurrent DOS - (и, следовательно, CP / M-86 -) производное ядро, которое внутренне организовало подкаталоги как относительные ссылки на родительские каталоги, а не как абсолютные пути. Начиная с PalmDOS и DR DOS 6.0 (с 1992 г.) и выше, для максимальной совместимости перешли на использование CDS. В программах DOS они также сталкиваются с теми же ограничениями, что и другие DOS.

В языках программирования

Большинство языков программирования предоставляют интерфейс к файловой системе функции операционной системы, включая возможность установки (изменения) рабочего каталога программы.

В языке C функция POSIX chdir()воздействует на системный вызов который меняет рабочий каталог. Его аргументом является текстовая строка с путем к новому каталогу, абсолютным или относительным по отношению к старому. Если возможно, он может быть вызван процессом для установки своего рабочего каталога.

Та же функция есть на других языках. В Visual Basic это обычно пишется как CHDIR ().

В отличие от функции Windows API или POSIX C, ни Java ни язык программирования, ни виртуальная машина Java не поддерживает напрямую chdir (); запрос на изменение оставался открытым более десяти лет, пока группа, ответственная за Java, рассматривала альтернативы, хотя к 2008 году запрос был отклонен после того, как была введена только ограниченная поддержка (затрагивающая сначала java.lang.Runtimeи более поздних версий, java.lang.ProcessBuilder).

См. Также
Примечания
Ссылки
Дополнительная литература
Внешние ссылки
Последняя правка сделана 2021-06-21 03:46:32
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте