c语言用popen函数打开top命令
时间: 2024-09-24 21:18:49 浏览: 50
在C语言中,`popen()` 函数是用于通过管道(pipe)连接应用程序与外部命令的,它可以让你在C程序内部像操作子进程一样执行系统命令,如`top`。`popen`函数接收两个参数:命令字符串和标志(mode),通常标志设置为"r"以读取输出,或者设置为"w"以写入命令的输入(但`top`命令一般不会接受标准输入)。
下面是一个简单的示例,演示如何使用 `popen()` 打开并读取 `top` 命令的输出:
```c
#include <stdio.h>
#include <stdlib.h>
#define TOP_COMMAND "top"
FILE *popen_top() {
FILE *process = popen(TOP_COMMAND, "r");
if (process == NULL) {
perror("Error opening top command");
return NULL;
}
return process;
}
int main() {
FILE *top = popen_top();
if (top != NULL) {
char line[1024];
while (fgets(line, sizeof(line), top)) {
printf("%s", line);
}
pclose(top); // 关闭管道
} else {
fprintf(stderr, "Failed to run top.\n");
}
return 0;
}
```
在这个例子中,我们首先创建了一个指向 `top` 命令的标准输出的文件描述符,然后循环读取其内容并打印出来。记得在完成操作后用 `pclose()` 函数关闭管道。
阅读全文