Chinaunix首页 | 论坛 | 博客
  • 博客访问: 314972
  • 博文数量: 42
  • 博客积分: 451
  • 博客等级: 下士
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-03 18:24
文章分类

全部博文(42)

文章存档

2015年(1)

2013年(9)

2012年(19)

2011年(13)

分类: C/C++

2012-08-09 09:35:54

    利用system函数调用shell命令,只能获取到shell命令的返回值,而不能获取shell命令的输出结果(或许有一个办法:把标准输出重定向到内存位置。但是设置起来可能比较麻烦。)
    popen函数可以完成上述要求,并且用起来比较简单。

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<stdlib.h>

  4. void main(int argc, char **argv)
  5. {
  6.         char command[1024] = "lvs -o,lv_uuid ";
  7.         char buffer[64] = {0};
  8.         strcat(command, argv[1]);
  9.         strcat(command, " |grep -v 'LV UUID'");
  10.         FILE *fp = popen(command, "r");
  11.         fgets(buffer, sizeof(buffer), fp);
  12.         printf("%s", buffer);
  13.         pclose(fp);
  14. }
此函数用于查看某个logical volume的uuid号,指令“lvs”来自于“lvm2”软件。

阅读(9362) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~