#include #include #include int main() { char cwd[PATH_MAX]; if (getcwd(cwd, sizeof(cwd)) == NULL) { perror("getcwd"); return 1; } printf("Current working dir: %s\n", cwd); return 0; } #### [~/sym1]$ gcc -Wall -Wextra -pedantic a.c -o a && ./a Current working dir: /home/ikegami/dir1 #### [~/sym1]$ readlink /proc/$$/cwd /home/ikegami/dir1 #### #include #include #include int main() { if (chdir("/home/ikegami/sym1")) { perror("chdir"); return 1; } char cwd[PATH_MAX]; if (getcwd(cwd, sizeof(cwd)) == NULL) { perror("getcwd"); return 1; } printf("Current working dir: %s\n", cwd); return 0; } #### [~/sym1]$ gcc -Wall -Wextra -pedantic a.c -o a && ./a Current working dir: /home/ikegami/dir1 #### use 5.010; use Path::Tiny qw( path ); say path($0)->absolute($ENV{PWD}); #### [~/sym1]$ perl a.pl /home/ikegami/sym1/a.pl