When I run the following code through xcode, I get inconsistent behavior. Sometimes it prints the git version correctly, in other cases it does not print anything. The return code from the shell command is always 0. Any ideas on why this might be? What am I doing wrong?
#define BUFFER_SIZE 256
int main (int argc, const char * argv[])
{
FILE *fpipe;
char *command="/opt/local/bin/git --version";
char line[BUFFER_SIZE];
if ( !(fpipe = (FILE*)popen(command, "r")) )
{
perror("Problems with pipe");
exit(1);
}
while ( fgets( line, sizeof(char) * BUFFER_SIZE, fpipe))
{
printf("READING LINE");
printf("%s", line);
}
int status = pclose(fpipe);
if (status != 0)
{
printf("Strange error code: %d", status);
}
return 0;
}
Anvar source
share