I want to system() to print pstack info in my application, but it failed and return 256.But I pick up these codes as below to one new main function,that's ok. why?
char cmd[256] ;
string pstackCmd;
struct timeval tv;
struct tm lt;(&tv, NULL);
localtime_r(&tv.tv_sec, <);
sprintf(cmd, "pstack `pgrep app` > pstack_%04d%02d%02d%02d%02d%02d%03d",
lt.tm_year+1900,
lt.tm_mon+1,
lt.tm_mday,
lt.tm_hour,
lt.tm_min,
lt.tm_sec,
(int)(tv.tv_usec/1000));
pstackCmd = string(cmd);
int retValue = system(pstackCmd.c_str());
if ( retValue != 0)
{
printf("pstack `pgrep app`,retValue:%d",retValue);
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…