使用系统时printf没有输出

时间:2010-02-22 10:22:40

标签: c

我有以下代码(代码的一部分):

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 个答案:

答案 0 :(得分:6)

可能只是stdout没有被刷新 - 当连接到控制台时,stdout通常是行缓冲的。尝试

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

printf("%s",command);
fflush(stdout);

答案 1 :(得分:3)

这可能只是stdout没有在printf之后刷新。尝试在printf之后添加fflush(stdout)

答案 2 :(得分:2)

可能缓冲。尝试在格式字符串的末尾添加\n