【发布时间】:2012-06-01 01:55:09
【问题描述】:
我最近开始使用linux,所以对它知之甚少。至少我知道linux中的每一件事都是一个文件。
我想知道如何捕获特定的linux系统返回,例如如果我选择了install ruby (sudo apt-get -y install ruby),我怎么知道它安装成功了?
char buffer[1024];
char *buf = malloc(4096);
char *pl;
FILE *fp;
if (strcmp(cmd, "ruby") == 0)
{
fp = popen("sudo apt-get -y install ruby", "r");
}
if (fp == NULL)
{
printf("Failed to load file\n");
exit(0);
}
while ((pl = fgets(buffer, sizeof(buffer), fp)) != NULL)
{
strcat(buf, buffer);
}
strcat(buf, "\n");
pclose(fp);
然后我使用 popen 读取打开的文件,但它包含终端中显示的相同内容,我只想要一个“标志”,如 OK 或 FAIL。
对不起,我的英语不好。
【问题讨论】:
-
您可能想要
system函数? -
为什么以后不列出已安装的包来查看是否已安装?
-
您真的没有阅读 popen() 手册页吗?老实说?
-
其实我不知道这个页面,对不起。