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?
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
Do you include unistd.h? If not, the error appears because your C compiler is assuming getcwd returns int.
The fix? Include unistd.h
Modify line with this one
if (getcwd(cwd, sizeof(cwd)) != NULL)
The prototype of getcwd is
Make sure you include
<unistd.h>
otherwise the return type would default toint
.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.