CWD (Current Working Directory) Nedir?

Yazdigim programdan dosyalara erisirken “bulunamadi” hatalari aliyorum, veya biri bana CWD problemim oldugunu soyledi. CWD Nedir?

2 Beğeni

CWD (Current Working Directory, bazen Current Directory veya CD) calismakta olan her programin sahip oldugu bir yoldur. Dosya sistemi uzerindeki bir dizine isaret etmesi beklenir. Orn: /home/aib/cwd1 veya C:\Users\aib\cwd2

CWD’nin onemi, neredeyse butun dosya islemlerindeki dosya isimlerinin ona goreceli olarak alinmasidir.

Mesela sistemin open veya CreateFile cagrilarina, veya programlama dilimizin standart kutuphanesindeki bir dosya fonksiyonuna hede.txt isimli dosyayi acmasini soyledik. Sistem, bu dosyayi CWD altinda arayacaktir: /home/aib/cwd1/hede.txt veya C:\Users\aib\cwd2\hede.txt.

Dosya yolunda bir dizin oldugu takdirde, bu dizin ve altindaki dosya da CWD icinde aranir:
txt_dosyalari/hede.txt/home/aib/cwd1/txt_dosyalari/hede.txt

“Mevcut dizin” ve “bir ust dizin” anlamina gelen . ve .. dizin isimleri de, dosya yolunun basinda olduklari takdirde, CWD’ye goreceli calisirlar.
./hede/hodo/home/aib/cwd1/./hede/hodo/home/aib/cwd1/hede/hodo
../hede/hodo/home/aib/cwd1/../hede/hodo/home/aib/hede/hodo

Kisaca yazdigimiz her dosya yolunun basina “{CWD}/” eklenebilir gibi dusunebilirsiniz. Bu yollara “goreceli yol” (relative path) denir.

Bu mekanizmayi atlamanin yolu, “mutlak yol” (absolute path) kullanmaktir. Mutlak yollar / veya X:\ ile baslar. CWD’ye degil, dosya sisteminin kokune/temeline goreceli olarak cozulurler:

/tmp/foo/home/aib/cwd1/tmp/foo degil/tmp/foo
C:\hede.txtC:\Users\aib\cwd2\C:\hede.txt degilC:\hede.txt

Windows’ta \ ile baslayan yollar da mutlak yollara cok benzeyen bir sekilde davranirlar. CWD’nin surucusunun kokune goreceli alinirlar:

\hede.txtC:\hede.txt (cunku CWD C: surucusunde)

Calismakta olan bir program, CWD’sini getcwd(3) veya GetCurrentDirectory cagrisiyla alip, chdir(2) veya SetCurrentDirectory cagrisiyla degistirebilir.

Bourne/sh uyumlu bir kabukta calisiyorsaniz CWD’nizi pwd komutuyla alip cd komutuyla degistirebilirsiniz. (Windows’ta ikisi de CD idi yanlis hatirlamiyorsam.)

4 Beğeni

Python’da: os.getcwd ve os.chdir

1 Beğeni