xcodeを介して次のコードを実行すると、一貫性のない動作が発生します。gitバージョンを正しく印刷する場合もあれば、何も印刷しない場合もあります。ただし、シェルコマンドからの戻りコードは常に0です。これがなぜであるかについてのアイデアはありますか?私は何が間違っているのですか?
#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")) )
{ // If fpipe is NULL
perror("Problems with pipe");
exit(1);
}
while ( fgets( line, sizeof(char) * BUFFER_SIZE, fpipe))
{
// Inconsistent (happens sometimes)
printf("READING LINE");
printf("%s", line);
}
int status = pclose(fpipe);
if (status != 0)
{
// Never happens
printf("Strange error code: %d", status);
}
return 0;
}