linux 执行命令行,获取结果
2011-09-26 09:45
399 查看
char strcmd[256] = {0};
snprintf(strcmd,sizeof(strcmd)-1, "ls -l %s",m_logpath);
FILE *pf = popen(strcmd,"r");
if( NULL == pf)
{
ERROR("NULL == pf\n");
return ;
}
char str[1024]={0};
int count = fread(str,1,sizeof(str)-1,pf);
//文件不存在
if(0 == count)
{
getLock();
if(NULL != pfp)
{
fflush(pfp);
pfp = NULL;
}
releaseLock();
}
else
{
char *psubstr = strtok(str," ");
int columns = 0;
while(NULL != psubstr)
{ columns++;
if(5 == columns)//第5列是文件的大小
{
long filesize = atol(psubstr);
// 日志已经达到最大值。
if (LHUConfig::GetConfigNumValue(LOGFILE_MAX_SIZE) < filesize)
{
char baklogpath[256]= {0};
strncpy(baklogpath,m_logpath,strlen(m_logpath)-4);
snprintf(strcmd,sizeof(strcmd)-1, "mv %s %s_%s.log",m_logpath,baklogpath,CURTIME);//CURTIME
getLock();
if(NULL != pfp)
{
fflush(pfp);
int ret = system(strcmd);
if (0 != ret)
{
releaseLock();
ERROR("exec %s error[%d] ! \n ",strcmd,ret);
return;
}
fclose(pfp);
pfp = NULL;
}
releaseLock();
}
break;
}
psubstr = strtok(NULL," ");
}
}
snprintf(strcmd,sizeof(strcmd)-1, "ls -l %s",m_logpath);
FILE *pf = popen(strcmd,"r");
if( NULL == pf)
{
ERROR("NULL == pf\n");
return ;
}
char str[1024]={0};
int count = fread(str,1,sizeof(str)-1,pf);
//文件不存在
if(0 == count)
{
getLock();
if(NULL != pfp)
{
fflush(pfp);
pfp = NULL;
}
releaseLock();
}
else
{
char *psubstr = strtok(str," ");
int columns = 0;
while(NULL != psubstr)
{ columns++;
if(5 == columns)//第5列是文件的大小
{
long filesize = atol(psubstr);
// 日志已经达到最大值。
if (LHUConfig::GetConfigNumValue(LOGFILE_MAX_SIZE) < filesize)
{
char baklogpath[256]= {0};
strncpy(baklogpath,m_logpath,strlen(m_logpath)-4);
snprintf(strcmd,sizeof(strcmd)-1, "mv %s %s_%s.log",m_logpath,baklogpath,CURTIME);//CURTIME
getLock();
if(NULL != pfp)
{
fflush(pfp);
int ret = system(strcmd);
if (0 != ret)
{
releaseLock();
ERROR("exec %s error[%d] ! \n ",strcmd,ret);
return;
}
fclose(pfp);
pfp = NULL;
}
releaseLock();
}
break;
}
psubstr = strtok(NULL," ");
}
}
相关文章推荐
- Linux C 程序执行 shell 命令并获取返回结果的方法
- 【转】C#执行命令行程序/命令并获取输出结果
- linux的C获取shell执行返回的结果
- C# 编写命令行交互工具——实时输出_获取执行结果
- Java调用命令行并获取执行结果
- LINUX C获取命令行输出结果
- C# 编写命令行交互工具——实时输出_获取执行结果
- 通过web php 执行shell脚本,获取的结果与直接在命令行下获取的结果不同。
- Java调用命令行并获取执行结果
- linux的C程序 调用 shell脚本,获取shell的执行结果
- popen C函数获取linux命令的执行结果
- Linux C 执行shell命令并获取返回结果
- Java调用命令行并获取执行结果
- Linux中用C语言执行shell命令并获取返回结果
- Delphi通过管道执行外部命令行程序(cmd)并获取返回结果
- 使用管道重定向方法获取windows下命令行执行程序结果
- c++ 执行命令行获取执行结果
- linux的C获取shell执行返回的结果
- Java简单实现调用命令行并获取执行结果示例
- Java执行linux命令 获取执行结果