有用c语言程序实现系统的cp命令的代码么,求帮助

有用c语言程序实现系统的cp命令的代码么,求帮助,第1张

Linux系统下的CP命令源代码是包含在coreutils里的。

或者使用rpm的源码包,我们可以输入命令:whereis cp

找到cp所在的路径

rpm -qf /bin/cp

使用rpm的qf参数能够查到某个文件属于哪个rpm包

我的机子的结果:coreutils-5.2.1-31.6

然后再到rpmfind.net中找coreutils的src.rpm源码.

rpm -ql -p /path/to/coreutils-5.2.1-31.src.rpm

rpm -ivh coreutils-5.2.1-31.src.rpm

然后在/usr/src/RedHat/SOURCES/(这个目录的名称不一定,取决于你装的是什么系统)就可以找到相应的源代码了。

举一反三,可以找到其他命令的源代码。

另外,Ubuntu中可以用apt-get -d source "coreutils" 这条命令来下载源代码,很方便。

HikariCP中实现的一个List,底层基于数组实现,目的是提高List *** 作的性能,主要用于HikariCP中缓存 Statement 实例和链接。

与JDK自带的ArrayList的主要优化:

可以发现其实并没有太高级的 *** 作,但这就是HikariCP快的原因之一,将细节做到极致。

初始化时默认数组长度为32。

ArrayList 中默认数组长度为10。

作为对比,看下 ArrayList 中的 add 方法:

不做范围检查,直接返回数组下标。

在HikariCP中, FastList 用于保存Statement和链接,程序可以保证 FastList 的元素不会越界,这样可以省去范围检查的耗时。

同样看下ArrayList里的get方法

remove 里在查找元素时是从后向前遍历的,原因还是FastList用来保存 Statement ,而Statement通过是后创建出来的先被Close掉,这样可以提高查询效率。

同样看下ArrayList中的Remove方法:

FastList 实现了 List 接口,但并没有将所有方法都实现出来,对HikariCP中用不到的方法直接抛出了 UnsupportedOperationException


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11402658.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存