LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 588|回复: 2

如何传递系统调用的结果?

[复制链接]
发表于 2004-7-30 11:42:38 | 显示全部楼层 |阅读模式

例如,dirname这个命令可以得到文件目录,我想把结果保存到一个字符串中。
    system("dirname  /root/hhj/hhj.c ");


$dirname /root/hhj/hhj.c
/root/hhj                                        //output
发表于 2004-7-30 12:41:20 | 显示全部楼层
可以考虑先保存到文件再读到字符串

  1.         char buf[BUFSIZE];
  2.         FILE *fp = tmpfile();

  3.         sprintf(buf, "dirname /root/hhj/hhj.c >&%d", fileno(fp));
  4.         system(buf);
  5.         fseek(fp, 0, SEEK_SET);
  6.         fgets(buf, sizeof buf, fp);
复制代码

如果上述函数执行成功, buf中就是dirname /root/hhj/hhj.c的输出
发表于 2004-7-30 19:27:35 | 显示全部楼层
popen
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表