/proc/进程号/statm包含了进程使用内存的信息,如[root@cs 9519]# more statm 18095 2094 1468 7 0 605 0 [root@cs 9519]# ps 9519PID TTY STAT TIME COMMAND9519 ? S 0:00 /usr/libexec/notification-daemonmore statm 18095 2094 1468 7 0 605 0编写一个程序,按上述方式加上文字说明信息,解释你的shell进程的内存统计信息。提示:打开文件/proc/进程号/statm?读文件到一个如500字节的缓冲区?将此缓冲区的文本用sscanf函数读取到7个整型变量中,然后加上文字说明信息,打印这些变量?关闭文件
1条回答 默认 最新
你知我知皆知 2024-08-03 01:50关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
#include <stdio.h> #include <stdlib.h> int main() { int pid, stat, bytes; char buf[500]; FILE *f; // 打开指定的文件 f = fopen("/proc/" PRIO "/statm", "r"); if (f == NULL) { perror("无法打开文件"); exit(1); } // 从文件中读取第一个行的内容(即pid) fgets(buf, sizeof(buf), f); // 使用sscanf函数将字符串转换为整数 sscanf(buf, "%d %d %d %d %d %d %d", &pid, &stat, &bytes, &bytes, &bytes, &bytes, &bytes); printf("进程ID: %d\n", pid); printf("系统状态: %d\n", stat); printf("已使用的内存大小: %ldB\n", bytes); fclose(f); return 0; }这段代码首先打开了"/proc/进程号/statm"文件,并将文件内容读入一个缓冲区。然后使用sscanf函数将字符串转换为整数,并将其与pid、stat、bytes和bytes一起打印出来。最后,关闭文件并返回0。
解决 无用评论 打赏 举报