On a Solaris 5.8 machine, I have the following code:
[non-working code]
char *buf;
char *dir;
size_t psize;
psize = (size_t) 1024;
dir = getcwd(buf, psize);
On this unix machine, the above does not work and I get a segmentation fault when trying to run the program. It only works if I declare dir
before buf
:
[working code]
char *dir;
char *buf;
...
dir = getcwd(buf, psize);
When using another flavor of Unix, such as Mac OS X, I don't get any of these what seem to be very strict rules on how to write the code. Can anyone explain what's going on with the above example? Thanks!