【发布时间】:2014-12-10 02:45:29
【问题描述】:
我想 system() 在我的应用程序中打印 pstack 信息,但它失败并返回 256。但是我将这些代码如下所示用于一个新的主函数,没关系。为什么?
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);
}
【问题讨论】:
-
好像不行,我用这些代码构建了一个新的二进制文件,并在同一目录中运行它。它可以正常工作。