CWD означает C urrent W orking D irectory , и это (обычно) каталоготкуда текущий процесс был запущен.Проверьте [man7]: GETCWD (3) для более подробной информации.Я подготовил небольшой пример, чтобы лучше понять, что происходит.
code.c :
#include <stdio.h>
#include <unistd.h>
#include <errno.h>
#define PATH_SIZE 0x0200
int main() {
char buf[PATH_SIZE];
if (getcwd(buf, PATH_SIZE) == NULL) {
printf("Error %d getting CWD\n", errno);
return 1;
}
printf("CWD: [%s]\n", buf);
return 0;
}
Вывод :
[cfati@cfati-ubtu16x64-0:~/Work/Dev/StackOverflow/q054306561]> ls
code.c
[cfati@cfati-ubtu16x64-0:~/Work/Dev/StackOverflow/q054306561]> gcc -o cwd code.c
[cfati@cfati-ubtu16x64-0:~/Work/Dev/StackOverflow/q054306561]> ls
code.c cwd
[cfati@cfati-ubtu16x64-0:~/Work/Dev/StackOverflow/q054306561]> ./cwd
CWD: [/home/cfati/Work/Dev/StackOverflow/q054306561]
[cfati@cfati-ubtu16x64-0:~/Work/Dev/StackOverflow/q054306561]> pushd .. && ./q054306561/cwd && popd
~/Work/Dev/StackOverflow ~/Work/Dev/StackOverflow/q054306561
CWD: [/home/cfati/Work/Dev/StackOverflow]
~/Work/Dev/StackOverflow/q054306561
[cfati@cfati-ubtu16x64-0:~/Work/Dev/StackOverflow/q054306561]> mkdir test && pushd test && ../cwd && popd
~/Work/Dev/StackOverflow/q054306561/test ~/Work/Dev/StackOverflow/q054306561
CWD: [/home/cfati/Work/Dev/StackOverflow/q054306561/test]
~/Work/Dev/StackOverflow/q054306561