#include #include #include #include #include int main () { char buf[100000]; char name[] = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"; char *result; printf ("PATH_MAX = %d\n", PATH_MAX); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); mkdir (name, 0777); chdir (name); result = getcwd (buf, sizeof buf); if (result >= 0) printf ("length: %d\n", strlen (result)); else perror ("error"); printf ("%s\n", result); return 0; } /* On GNU/kFreeBSD: gcc -O -Wall a.c */ /* On Linux: gcc -O -Wall -c glibc-cvs/sysdeps/posix/getcwd.c -DSTDC_HEADERS -DHAVE_UNISTD_H -DHAVE_LIMITS_H -DDIRENT -D__lstat=lstat -D__opendir=opendir -D__readdir=readdir -D__closedir=closedir gcc -O -Wall a.c getcwd.o */