C++调用grep命令问题

wengfanfan 2010-07-21 10:23:45
小弟初学linux。遇见一问题。在liunx下grep一个字符串后,希望能够用C++讲grep到的字符串高亮显示在linux系统的界面中。我的思路是把获取到的内容作为一个数组元素,写一个函数,将这个数组作为参数,在函数内部 对他们进行字体颜色设置 然后调用输出。
主要是下面几个问题:
1C++中如何调用linux中的 shell命令。大概了解下是用system(""),不过system的返回值是什么
2如果取得返回值了,如果将其放入数组中,我的设想是用vector类模板,不过我不太会用,不知道该怎么写。
3数组参数的输出时直接用cout么
希望高手指教。C++代码该如何实现
...全文
256 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
timefinger 2010-07-22
  • 打赏
  • 举报
回复
LS诸位说的是
wengfanfan 2010-07-21
  • 打赏
  • 举报
回复
多谢了。我去试下。
XyRbj 2010-07-21
  • 打赏
  • 举报
回复
恩,使用system,可以介绍你用这种方法就是
system("grep [comm] > file_path");
然后读取这个文件,当然grep输出是按照你的一开始的规范定义的,这样在后续的
scanf文件的时候也可以规范起来。

fp = fopen(szFileName, "r+");
if(fp == NULL)
return -1;
while(!feof(fp))
{
menset(szTmp,0x00,sizeof szTmp);
fgets(szTmp, 256, fp);
sscanf(szTmp, "%ld %ld %s %ld %ld %ld %ld",a,b,c,d,e,f,....);
//sscanf读出来的那些变量 就可以直接当做参数在这个循环里调用函数了。
}



wwwunix 2010-07-21
  • 打赏
  • 举报
回复
1、system()的返回值是system是否成功调用了。不是命令的结果。你可以将命令结果存到一个文件中,然后再在程序中读取文件中的内容。
2/3、建议看看C++方面的书。cout可以输出数组。
Erorr 2010-07-21
  • 打赏
  • 举报
回复
shell下配合xargs效果更好
phpjspasp 2010-07-21
  • 打赏
  • 举报
回复
我觉得你可以试试管道。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧