c - 如何用 C 编写一个程序,从 linux 命令的结果中打印一些列?
问题描述
我想编写一个程序,在放入终端后:
gcc task.c -o task
ps aux | ./task
将 %CPU 数据打印为标准输出。
我写了程序的开头:
int main(int argc, char *argv)
{
char buffer[BUFSIZ];
char *data = calloc(1,1);
while(fgets(buffer,BUFSIZ,stdin) != NULL)
{
data = realloc(data,strlen(data)+1+strlen(buffer));
strcat(data,buffer);
}
我不知道这种从 linux 程序的 stdout 获取数据的方式是否很好,但是在我打印之后,printf("%s",data);
我得到了完全不同的结果(一些额外的迹象)。
解决方案
推荐阅读
- python - 将用户输入与取自数据库列的列表中的项目进行比较(Python3/SQL)
- tensorflow - 如何从 ImageDataGenerator 中获取 x_train 和 y_train?
- sql - 如何使用 Sql/Presto 从数字字符串中提取年份?
- java - Firebase电话身份验证在Android中不起作用
- postgresql - 当使用 pgloader 将数据从 mysql 迁移到 postgresql 时,显示通过 ECASE 表达式
- node.js - Passport.js 将 azure-ad 身份验证链接视为相对链接,尝试登录时返回 404
- ruby-on-rails - Ruby on Rails - 在 OSX 上使用 Ruby 2.4.4 而不是 rails 5.1.6 的配置问题/异常
- asp.net - ASP .Net MVC Web 应用程序搜索过滤器不起作用?
- html - jQuery 每个函数都不能用于将查询字符串附加到 URL
- c# - c#图表内存不足异常