简体   繁体   中英

printf is not giving output when using system

I have following code(part of code):

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;
}

The issue is system command is working fine. But my printf is not giving the command value. Is this the issue of memory overflow or like that?

It might just be that stdout isn't getting flushed - often stdout is linebuffered when connected to a console. Try either

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

or

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

It's possible that it's just stdout not getting flushed after the printf. Try adding fflush(stdout) after the printf.

Probably buffering. Try putting a \\n at the end of the format string.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM