linux系统中的"top"命令如何实现的呢?编程思路是怎么样的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统中的"top"命令如何实现的呢?编程思路是怎么样的?相关的知识,希望对你有一定的参考价值。

主要回答以下两个问题:(回答得好,会追加分数的,谢谢各位!)
1.如何实现实时刷新显示?用C语言如何实现?(不要像“clear”整个屏幕清除掉的)
2.如何实现多参数呢?如-a和-n可以用switch case实现,那-na这种两个参数一起的,怎么实现呢?输出的内容又怎么结合呢?

你可以在case里直接用 -na呗,然后功能就是将-a-n的功能输出拼起来
当然这个是笨办法,其实可以获取参数表,然后根据参数内容进行输出追问

我用的是getopt( )函数获得命令和参数的,接收的参数只有一个字符,但是可以输入-an也可以,就是将功能拼接,只是这没什么意义。如果能 case 'na' :,这样也好,我可以重新写功能,只是不行。。

追答

如果你能获取参数表,比如-ancdefg
你可以分隔成一组字符数组,然后在你的参数表里查询,然后拼接其内容

参考技术A

这是linux的命令的源码,你自己看看怎么实现的

追问

能不能简单点拨下?文件好多,看得没有头绪。。

参考技术B 1. 大多用的ncurse 库实现这个功能吧
2. 单独写switch case 不好么? 应该都是这样用的吧.追问

我是用getopt( )函数获得命令和参数的,接收的参数只有一个字符,两个字符不行哎。。

Windows中的"簇"和Linux中的"块"是对应的

扇区是对硬盘而言,块是对文件系统而言。

 

簇”又称为“分配单元” ,文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。

  为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。


---------------------
作者:杜_小妖
来源:CSDN
原文:https://blog.csdn.net/duyusean/article/details/78643475
版权声明:本文为博主原创文章,转载请附上博文链接!

以上是关于linux系统中的"top"命令如何实现的呢?编程思路是怎么样的?的主要内容,如果未能解决你的问题,请参考以下文章

为啥不 exec("top");在 Linux 上工作?

在 Linux 中,“top”命令中的所有值是啥意思?

python中copy文件后重命名为后缀是系统时间

Linux将文件重命名为当前日期/时间

linux系统管理常用命令--top

Windows中的"簇"和Linux中的"块"是对应的