I get a warning
warning: comparison between pointer and integer
on the line containing if
from the next piece of code:
char cwd[1024];
if (getcwd(cwd, sizeof(cwd)) != (char*)NULL)
printf("%s\n",cwd);
else
error_print("error in pwd");
how and what do I need to fix?
Do you include unistd.h? If not, the error appears because your C compiler is assuming getcwd returns int.
The fix? Include unistd.h
The prototype of getcwd is
char *getcwd(char *buf, size_t size);
Make sure you include <unistd.h>
otherwise the return type would default to int
.
Here, even Ideone gives its Current Working Directory
have you included the .h necessary so that the compiler understands what getcwd returns?
the behavior of your c compilers is probably to assume an int return value from every undefined function.
In the return types section of the following link, getcwd returns null on failure. Thus, instead of checking for != (char *)NULL
just check for != NULL
http://linux.die.net/man/3/getcwd
Modify line with this one if (getcwd(cwd, sizeof(cwd)) != NULL)