Что такое рабочий каталог
Перейти к содержимому

Что такое рабочий каталог

  • автор:

рабочем каталоге — Working directory

В вычислениях, рабочий каталог процесса процесса представляет собой каталог иерархической файловой системы, если есть, динамически связанный с каждым процессом. Иногда его называют текущим рабочим каталогом (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 и _CWPS (в 4DOS, 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 ).

См. Также

  • Домашний каталог
  • Корневой каталог
  • Родительский каталог
  • chroot (системы Linux)
  • Загрузить диск (другое, но родственное понятие)

Примечания

Ссылки

Дополнительная литература

  • Chen, Raymond (2010-10-11). » Почему у каждого диска свой текущий каталог? «. Новая старая вещь. Microsoft. Архивировано из оригинала 12 апреля 2016 года. Проверено 05 мая 2017 г. 27.
  • Чен, Реймонд (06.05.2010). «Что это за странные = C: переменные среды?». Новое старое. Microsoft. Архивировано из оригинала 27.05.2018. Проверено 27.05.2017.

Внешние ссылки

  • Рабочий каталог (wd) на Github — программный пакет, отслеживающий com только используемые каталоги в сеансе bash

Рабочий каталог

Рабочий каталог — папка на компьютере, где хранятся данные программ.

Рабочий каталог УПРЗА «Эколог»

Адрес

Пункт «Выбор рабочего каталога» в меню «Инструменты».

Состав

Каталоги предприятий .Ent
Каталог City

Рабочий каталог программы «ПДВ-Эколог»

Адрес

Пункт «Расположение базы данных» в меню «Настройки».

Состав

Каталоги предприятий .Pr4
Каталог CITYPDV

Рабочий каталог программы «Инвентаризация»

Адрес

Пункт «Расположение базы данных» в меню «Настройки».

Состав

Каталоги предприятий .INV
Каталог City

Пример кода C/C++: настройка рабочего каталога

В этом примере задается рабочий каталог известной задачи. В этом примере предполагается, что задача и тестовая задача уже существуют на локальном компьютере.

#include #include #include #include #include #include int main(int argc, char **argv) < HRESULT hr = S_OK; /////////////////////////////////////////////////////////////////// // Call CoInitialize to initialize the COM library and then // call CoCreateInstance to get the Task Scheduler object. /////////////////////////////////////////////////////////////////// ITaskScheduler *pITS; hr = CoInitialize(NULL); if (SUCCEEDED(hr)) < hr = CoCreateInstance(CLSID_CTaskScheduler, NULL, CLSCTX_INPROC_SERVER, IID_ITaskScheduler, (void **) &pITS); if (FAILED(hr)) < CoUninitialize(); return 1; >> else < return 1; >/////////////////////////////////////////////////////////////////// // Call ITaskScheduler::Activate to get the Task object. /////////////////////////////////////////////////////////////////// ITask *pITask; LPCWSTR lpcwszTaskName; lpcwszTaskName = L"Test Task"; hr = pITS->Activate(lpcwszTaskName, IID_ITask, (IUnknown**) &pITask); // Release the ITaskScheduler interface. pITS->Release(); if (FAILED(hr)) < wprintf(L"Failed calling ITaskScheduler::Activate: "); wprintf(L"error = 0x%x\n",hr); CoUninitialize(); return 1; >/////////////////////////////////////////////////////////////////// // Call ITask::SetWorkingDirectory to specify the current // working directory for Test Task. /////////////////////////////////////////////////////////////////// LPCWSTR pwszWorkingDirectory = L"C:\\Temp"; hr = pITask->SetWorkingDirectory(pwszWorkingDirectory); if (FAILED(hr)) < wprintf(L"Failed calling ITask::SetWorkingDirectory: "); wprintf(L"error = 0x%x\n",hr); pITask->Release(); CoUninitialize(); return 1; > /////////////////////////////////////////////////////////////////// // Call IPersistFile::Save to save the modified task to disk. /////////////////////////////////////////////////////////////////// IPersistFile *pIPersistFile; hr = pITask->QueryInterface(IID_IPersistFile, (void **)&pIPersistFile); // Release the ITask interface. pITask->Release(); hr = pIPersistFile->Save(NULL, TRUE); if (FAILED(hr)) < wprintf(L"Failed calling IPersistFile::Save: "); wprintf(L"error = 0x%x\n",hr); pIPersistFile->Release(); CoUninitialize(); return 1; > // Release the IPersistFile interface. pIPersistFile->Release(); wprintf(L"Set the working directory to C:\\Temp.\n"); CoUninitialize(); return 0; > 

Связанные темы

Обратная связь

Были ли сведения на этой странице полезными?

Обратная связь

Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see: https://aka.ms/ContentUserFeedback.

Отправить и просмотреть отзыв по

Что такое рабочий каталог

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

Например, подкаталог filestorage рабочего каталога по умолчанию используется хранилищем загруженных файлов. Кроме того, блок Middleware на старте сохраняет в рабочем каталоге сгенерированные файлы persistence.xml и orm.xml .

Расположение рабочего каталога определяется свойством приложения cuba.dataDir. По умолчанию, рабочий каталог размещается внутри домашнего каталога приложения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *