当前位置: 技术问答>linux和unix
完成一个用于显示系统配置的程序proc_parse.c,多谢了!
来源: 互联网 发布时间:2016-07-05
本文导语: #include #include int main(int argc, char **argv) { FILE *fd; int i; char buffer[128]; if (argc==1) { . . . if ( (fd=fopen("/proc/sys/kernel/osrelease", "r")) == NULL...
#include
#include
int main(int argc, char **argv)
{
FILE *fd; int i;
char buffer[128];
if (argc==1)
{
. . .
if ( (fd=fopen("/proc/sys/kernel/osrelease", "r")) == NULL)
{
perror("Error opening /proc/sys/kernel/osrelease");
exit(-1);
}
fgets(buffer, 32, fd);
printf("Linux %s", buffer);
fclose(fd);
. . .
}
else
{
char name[64];
sprintf(name,"/proc/%s/status", argv[1]);
. . .
if ( (fd=fopen(name, "r")) == NULL)
{
. . .
}
return 1;
}
}
四处...是要完成的部分,需要用/proc文件系统,访问/proc中的文件可以用fgets()或者fscanf()等等
要求:
1.输入: ./cpuinfo 输出:CPU型号
2.输入: ./sys/kernel/osrelease 输出:操作系统版本
3.输入: ./meminfo 输出:内存总量,可用内存量
4.输入: ./uptime 输出:系统启动后到现在的时间,用于空闲进程的时间(均以秒为单位)
5.输入: ./proc_parse 输出:1-4的全部信息
6.输入: ./proc_parse processID 输出:此进程对应的程序的名称,进程状态,父进程ID
例子:
#./proc_parse
CPU model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
Linux 2.6.28-15-server
MemTotal: 8081524 kB
MemFree: 341944 kB
System up time: 1552961.28
System idle time: 1559067.43
#./proc_parse 5882
Name: zsh
State: S (sleeping)
PPid: 5234
可能用到的C函数(在stdlib和stdio中): open(), fclose(), fgets(), fscanf(), sprint(), printf(), perror(), exit()
#include
int main(int argc, char **argv)
{
FILE *fd; int i;
char buffer[128];
if (argc==1)
{
. . .
if ( (fd=fopen("/proc/sys/kernel/osrelease", "r")) == NULL)
{
perror("Error opening /proc/sys/kernel/osrelease");
exit(-1);
}
fgets(buffer, 32, fd);
printf("Linux %s", buffer);
fclose(fd);
. . .
}
else
{
char name[64];
sprintf(name,"/proc/%s/status", argv[1]);
. . .
if ( (fd=fopen(name, "r")) == NULL)
{
. . .
}
return 1;
}
}
四处...是要完成的部分,需要用/proc文件系统,访问/proc中的文件可以用fgets()或者fscanf()等等
要求:
1.输入: ./cpuinfo 输出:CPU型号
2.输入: ./sys/kernel/osrelease 输出:操作系统版本
3.输入: ./meminfo 输出:内存总量,可用内存量
4.输入: ./uptime 输出:系统启动后到现在的时间,用于空闲进程的时间(均以秒为单位)
5.输入: ./proc_parse 输出:1-4的全部信息
6.输入: ./proc_parse processID 输出:此进程对应的程序的名称,进程状态,父进程ID
例子:
#./proc_parse
CPU model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
Linux 2.6.28-15-server
MemTotal: 8081524 kB
MemFree: 341944 kB
System up time: 1552961.28
System idle time: 1559067.43
#./proc_parse 5882
Name: zsh
State: S (sleeping)
PPid: 5234
可能用到的C函数(在stdlib和stdio中): open(), fclose(), fgets(), fscanf(), sprint(), printf(), perror(), exit()
|
友情帮顶
|
友情 up
|
好难哦 等待大牛来给你解决 不过楼主估计要慢慢等了 呵呵