Радни директоријум

С Википедије, слободне енциклопедије

У рачунарству, радни директоријум (енгл. working directory) процеса јесте директоријум хијерархијског фајл система (пуна адреса у фајл систему). Ако постоји,[nb 1] динамички је повезан са сваким процесом. Понекад се назива и тренутни радни директоријум (енгл. current working directory – CWD), нпр. БСД getcwd(3) функција или само радни директоријум.[1] Када процес приступа фајлу користећи само име фајла или је путања до њега релативна интерпретира се путања са почетком у тренутном директоријуму (CWD). Односно, ако је процес из тренутног директоријума /rabbit-shoes и хожћемо да креирамо фајл „foo.txt” завршиће се креирањем фајла /rabbit-shoes/foo.txt.

У оперативним системима[уреди | уреди извор]

У већини оперативних система, сваки директоријум има свој улаз (почетак), обично означена са „.” која показује на сам фајл.

У већини ДОС и Јуникс интерфејса командне линије, као и у Windows-у, cmd.exe и Windows PowerShell-у, радни директоријум се може променити користећи cd или chdir команде. У Јуникс терминалу, команда pwd враћа путању радног директоријума; еквивалентна наредба у оперативном систему ДОС и Windows је cd или chdir без аргумената (док у Јуниксу cd без аргмената враћа корисника у кориснички директоријум).

Наредбе PWD (у Јуникс/Линукс љускама) и CD (у Windows COMMAND.COM and cmd.exe, али не у ОС/2 И ДОС-у), или _CWD, _CWDS, _CWP и _CWPS (испод 4ДОС, 4ОС2, 4НТ итд.)[2] се могу користити и у скриптама које се могу извршавати од стране других програма. Windows пречице имају способност да чувају радни директоријум.

COMMAND.COM у DR-DOS 7.02 и новијим верзијама пружа ECHOS, верзију команде ECHO.[3][2] Ово се може користити за креирање приивременог програма batchjob који чува тренутни директоријум у променљивој CD за каснију употребу, нпр.:

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

Алтернативно, код Multiuser DOS и DROS 7.-D02 и новијих верзија, разне спољашње и унутрашње команде подржавају параметар /B (за "Batch").[4] Ово модификује излаз наредби тако да постаје погодан за директан унос преко командне линије (кад се преусмерава у batch фајл) или се користи као параметар код других наредби (користи се ка улаз за другу наредбу).Тамо где би CHDIR команда направила путању као што је C:\DOS, команда CHDIR /B би направила CHDIR C:\DOS, тако да би CHDIR /B > RETDIR.BAT привремни batchjob дозвољавајући враћање на овај директоријум касније.

Тренутни радни директоријум је такође приказан помоћу $P[nb 2] симбола команде PROMPT[5] DR-DOS 7.07 COMMAND.COM подржава $W ознаку која приказује најдубљу разину поддиректоријума. Дакле, тамо где би PROMPT $P$G дао резултат C:\DOS> или C:\DOS\DRDOS>, PROMPT $N:$W$G би уместо тога дао C:DOS> и C:DRDOS>. Слична погодност (користећи $W и $w) је додата 4ДОС-у такође.

Код ДОС-а, путање тренутних радних директоријума су смештене у структури која личи на низ података и зове се тренутна директоријумска структура (енгл. Current Directory Structure - CDS), која се динамички распоређује у току покретања да би задржала потребан број улаза за све уређаје који чувају информације.Ова структура намеће ограничење дужине од 66 знакова на целој путањи сваког радног директоријума, а тиме имплицитно такође ограничава максималну могућу дубину поддиректоријума. ДОС Плус и старија издања ДР ДОС-а (до ДР ДОС 6.0 из 1991. године) нису имали таква ограничења због њихове примене користећи ДОС имитацију на врху Concurrent DOS (а тиме и CP/M-86-) изведеног језгра, које је организовало поддиректоријуме као релативне везе до матичних директоријума уместо апсолутних путања. Пошто су PalmDOS и DR DOS 6.0 (од 1992) и новије верзије почеле да користе CDS да би се што је могуће више прилагодиле ДОС програмима, суочили су се са истим ограничењима као и у осталим ДОС-евима.

У програмским језицима[уреди | уреди извор]

Већина програмских језика пружа подршку интерфејсима ка функцијама за рад са оперативним системом, укључујући и функцију за промену радног директоријума.

У програмском језику C, ПОСИКС функција chdir() је функција којом се мења радни директоријум. Аргумент функције јесте ниска који представља путању новог радног директоријума (или апсолутна или релативна путања). Може се позвати и од стране процеса како би се поставио за дадни директоријум баш директоријум у коме се процес и налази.

И у другим програмским језицима постоје исте функције са истом улогом. У Вижуал бејсику се обично пише CHDIR().

За разлику од Windows АПИ-ја или ПОСИКС Ц функције, ни програмски језик Јава ни Јава виртуелна машина не подржавају chdir() директно;захтев за прилаођавање система остао је отворен више од једне деценије док је тим одговоран за Јаву разматрао алтернативе, премда је захтев одбијен 2008 године након што је представљена само ограничена подршка (прво је деловао на java.lang.Runtime а касније и на java.lang.ProcessBuilder).

Напомене[уреди | уреди извор]

  1. ^ Постоје оперативни системи који подржавају хијерархијски фајл систем али немају концепт „радног директоријума”; на пример Тексас Инструментсов DX10, који је кориштен за TI-990 серију.
  2. ^ На исти начин као што $O делује алтернативно за $P под DR-DOS COMMAND.COM, $W има псеудоним $Y, осим што се потискује на дискетама како би се избегле поруке о критичној грешци или кашњења приликом покушаја преузимања путања са одсутне дискете.

Референце[уреди | уреди извор]

  1. ^ „Microsoft Windows – SetCurrentDirectory function”. Microsoft. Архивирано из оригинала 27. 05. 2018. г. Приступљено 27. 05. 2017. 
  2. ^ а б Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (27. 02. 2002). 4DOS 8.00 online help. 
  3. ^ DR-DOS 7.03 WHATSNEW.TXT — Changes from DR-DOS 7.02 to DR-DOS 7.03. Caldera, Inc. 24. 12. 1998. Архивирано из оригинала 08. 04. 2019. г. Приступљено 08. 04. 2019. 
  4. ^ CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (CCI). 10. 02. 1997. HELP.HLP. 
  5. ^ Caldera DR-DOS 7.02 User Guide. Caldera, Inc. 1998 [1993, 1997]. Архивирано из оригинала 04. 11. 2016. г. Приступљено 10. 08. 2013. 

Литература[уреди | уреди извор]

Спољашње везе[уреди | уреди извор]