Puneet Varma (Editor)

Working directory

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

In computing, the working directory of a process is a directory of a hierarchical file system, if any, dynamically associated with each process. It is sometimes called the current working directory or CWD, e.g. the BSD getcwd(3) function. When the process refers to a file using a simple file name or relative path (as opposed to a file designated by a full path from a root directory), the reference is interpreted relative to the current working directory of the process. So for example a process with working directory /rabbit-shoes that asks to create the file foo.txt will end up creating the file /rabbit-shoes/foo.txt.

Contents

In operating systems

In most computer file systems, every directory has an entry (usually named ".") which points to the directory itself.

In most DOS and UNIX command shells, as well as in the Microsoft Windows command line interpreters cmd.exe and Windows PowerShell, the working directory can be changed by using the cd or chdir commands. In Unix shells, the pwd command outputs a full pathname of the current working directory; the equivalent command in DOS and Windows is cd without arguments (whereas in Unix, cd used without arguments takes the user back to his/her home directory). The environment variable PWD (in Unix/Linux shells) or CD (in DOS/Windows shells) is also set for use in scripts, so that one need not start an external program. Microsoft Windows file shortcuts have the ability to store the working directory.

In programming languages

Most programming languages provide an interface to the file system functions of the operating system, including the ability to set (change) the working directory of the program.

In the C language, the POSIX function chdir() effects the system call which changes the working directory. Its argument is a text string with a path to the new directory, either absolute or relative to the old one. Where available, it can be called by a process to set its working directory.

There is the same function in other languages. In Visual Basic it is usually spelled CHDIR().

Unlike the Windows API or POSIX C function, neither the Java programming language nor the Java Virtual Machine supports chdir() directly; a change request remained open for over a decade while the team responsible for Java considered the alternatives, though by 2008 the request was denied after only limited support was introduced (affecting first java.lang.Runtime and later, java.lang.ProcessBuilder ).

References

Working directory Wikipedia