printf не выдает вывод при использовании системы - PullRequest
0 голосов
/ 22 февраля 2010

У меня есть следующий код (часть кода):

snprintf(
    command,
    sizeof(command),
    "%s -o %s -n \"%s\" -st %s -et %s -a \"%s\"",
    _pcOPMTRExePath,
    _pcTempFile,
    l_acHostName,
    _pcStartTime,
    _pcEndTime,
    l_acMessage
);
printf("%s",command);
l_iRetValue = system(command);
/* Return an error if failed to copy*/
if(l_iRetValue!=0)
{
    printf("18");
    return INTERNAL_ERROR;
}

Проблема в том, что системная команда работает нормально. Но мой printf не дает значения команды. Это проблема переполнения памяти или вот так?

Ответы [ 3 ]

6 голосов
/ 22 февраля 2010

Может случиться так, что stdout не сбрасывается - часто stdout буферизуется при подключении к консоли. Попробуйте либо

printf("%s\n",command);

или

printf("%s",command);
fflush(stdout);
3 голосов
/ 22 февраля 2010

Возможно, это просто stdout не сбрасывается после printf. Попробуйте добавить fflush(stdout) после printf.

2 голосов
/ 22 февраля 2010

Возможно буферизация. Попробуйте поставить \n в конце строки формата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...