学习了目录操作函数 编写了一个源…
2015-10-08 00:21
399 查看
这几天看Unix编程 学习了dirent.h这个头文件里面的一些目录读取函数 还有stat.h头文件里面的获取文件信息的函数
编写了Linux下面的ls命令 简化版的ls命令
昨天
由于我的好奇心我下载了一个Linux内核(2.6.34.1)的源代码 看里面有一大堆源代码 好厉害..我就想看看他到底有多少行 没办法
只能自己编程计算 我就用所学的知识编写了一个统计源代码的程序 他可以统计一个目录树中所有指定扩展名的文件有多少行 共有多少个字符
并在文件中生成目录树 我还很蛋疼的加入了统计每个字符在目录中出现了多少个这种功能..(真tmd无聊..)
算法就是通过递归遍历目录树然后读取文件
很sb的..本来想给目录按照名字排序 结果发现windows和linux下面对readdir这个函数的支持不一样
(感觉linux的目录信息结构体是本来就存在的 而windows的目录信息结构体是用API直接读取生成在静态空间里面的
因为文件系统不一样) 在linux下面不排序的话就是乱序 然后对文件名指针排序后就好了
然后在windows下面对指针排序后发现文件都是一样的名字...也就是说指针指向同一个空间.
....然后我就没加入蛋疼的排序功能
(其实在windows下面这个函数是自动生成从小到大的文件名的..真方便..更确定了他的目录结构体是临时生成在静态变量的)
很蛋疼的扫描了下Linux 内核源码...有一千多万行代码
三亿多字符 吓了我一跳...
Charactor count in /media/e/linux/kernel/linux-2.6.34.1:
(Visible charactor)
charactor
' '
(ASCII: 32) :36829877 (11.2174%)
charactor ' !
' (ASCII: 33)
: 227529 (0.0692993%)
charactor ' "
' (ASCII: 34)
: 981736 (0.299011%)
charactor ' #
' (ASCII: 35) : 1019531
(0.310522%)
charactor ' $
' (ASCII: 36)
: 7067
(0.00215242%)
charactor ' %
' (ASCII: 37)
: 287997 (0.0877162%)
charactor ' &
' (ASCII: 38)
: 740808 (0.22563%)
charactor ' '
' (ASCII: 39)
: 129483 (0.0394371%)
charactor ' (
' (ASCII: 40) : 3935105
(1.19853%)
charactor ' )
' (ASCII: 41) : 3937486
(1.19925%)
charactor ' *
' (ASCII: 42) : 5294139
(1.61245%)
charactor ' +
' (ASCII: 43)
: 430409 (0.131091%)
charactor ' ,
' (ASCII: 44) : 4751289
(1.44712%)
charactor ' -
' (ASCII: 45) : 3191487
(0.972042%)
charactor ' .
' (ASCII: 46) : 1575165
(0.479753%)
charactor ' /
' (ASCII: 47) : 2321300
(0.707006%)
charactor ' 0
' (ASCII: 48) : 6915779
(2.10636%)
charactor ' 1
' (ASCII: 49) : 2120732
(0.645918%)
charactor ' 2
' (ASCII: 50) : 1714803
(0.522283%)
charactor ' 3
' (ASCII: 51) : 1087947
(0.33136%)
charactor ' 4
' (ASCII: 52)
: 986460 (0.300449%)
charactor ' 5
' (ASCII: 53)
: 606067 (0.184592%)
charactor ' 6
' (ASCII: 54)
: 808268 (0.246177%)
charactor ' 7
' (ASCII: 55)
: 468726 (0.142761%)
charactor ' 8
' (ASCII: 56)
: 901063 (0.27444%)
charactor ' 9
' (ASCII: 57)
: 481907 (0.146776%)
charactor ' :
' (ASCII: 58)
: 533928 (0.16262%)
charactor ' ;
' (ASCII: 59) : 3781891
(1.15186%)
charactor ' <
' (ASCII: 60)
: 532255 (0.162111%)
charactor ' =
' (ASCII: 61) : 2504666
(0.762855%)
charactor ' >
' (ASCII: 62) : 1980438
(0.603189%)
charactor ' ?
' (ASCII: 63)
: 50317 (0.0153252%)
charactor ' @
' (ASCII: 64)
: 93794 (0.0285672%)
charactor ' A
' (ASCII: 65) : 2650946
(0.807408%)
charactor ' B
' (ASCII: 66) : 1075072
(0.327438%)
charactor ' C
' (ASCII: 67) : 2480897
(0.755615%)
charactor ' D
' (ASCII: 68) : 1966210
(0.598855%)
charactor ' E
' (ASCII: 69) : 3211633
(0.978178%)
charactor ' F
' (ASCII: 70) : 1381906
(0.420892%)
charactor ' G
' (ASCII: 71)
: 960919 (0.29267%)
charactor ' H
' (ASCII: 72)
: 683768 (0.208258%)
charactor ' I
' (ASCII: 73) : 2626775
(0.800046%)
charactor ' J
' (ASCII: 74)
: 36313 (0.01106%)
charactor ' K
' (ASCII: 75)
: 447644 (0.13634%)
charactor ' L
' (ASCII: 76) : 1727130
(0.526038%)
charactor ' M
' (ASCII: 77) : 1720172
(0.523919%)
charactor ' N
' (ASCII: 78) : 1937673
(0.590164%)
charactor ' O
' (ASCII: 79) : 1814087
(0.552523%)
charactor ' P
' (ASCII: 80) : 1867258
(0.568717%)
charactor ' Q
' (ASCII: 81)
: 181357 (0.0552365%)
charactor ' R
' (ASCII: 82) : 2666262
(0.812072%)
charactor ' S
' (ASCII: 83) : 2613991
(0.796152%)
charactor ' T
' (ASCII: 84) : 2647271
(0.806288%)
charactor ' U
' (ASCII: 85) : 1124368
(0.342453%)
编写了Linux下面的ls命令 简化版的ls命令
昨天
由于我的好奇心我下载了一个Linux内核(2.6.34.1)的源代码 看里面有一大堆源代码 好厉害..我就想看看他到底有多少行 没办法
只能自己编程计算 我就用所学的知识编写了一个统计源代码的程序 他可以统计一个目录树中所有指定扩展名的文件有多少行 共有多少个字符
并在文件中生成目录树 我还很蛋疼的加入了统计每个字符在目录中出现了多少个这种功能..(真tmd无聊..)
算法就是通过递归遍历目录树然后读取文件
很sb的..本来想给目录按照名字排序 结果发现windows和linux下面对readdir这个函数的支持不一样
(感觉linux的目录信息结构体是本来就存在的 而windows的目录信息结构体是用API直接读取生成在静态空间里面的
因为文件系统不一样) 在linux下面不排序的话就是乱序 然后对文件名指针排序后就好了
然后在windows下面对指针排序后发现文件都是一样的名字...也就是说指针指向同一个空间.
....然后我就没加入蛋疼的排序功能
(其实在windows下面这个函数是自动生成从小到大的文件名的..真方便..更确定了他的目录结构体是临时生成在静态变量的)
很蛋疼的扫描了下Linux 内核源码...有一千多万行代码
三亿多字符 吓了我一跳...
Charactor count in /media/e/linux/kernel/linux-2.6.34.1:
(Visible charactor)
charactor
' '
(ASCII: 32) :36829877 (11.2174%)
charactor ' !
' (ASCII: 33)
: 227529 (0.0692993%)
charactor ' "
' (ASCII: 34)
: 981736 (0.299011%)
charactor ' #
' (ASCII: 35) : 1019531
(0.310522%)
charactor ' $
' (ASCII: 36)
: 7067
(0.00215242%)
charactor ' %
' (ASCII: 37)
: 287997 (0.0877162%)
charactor ' &
' (ASCII: 38)
: 740808 (0.22563%)
charactor ' '
' (ASCII: 39)
: 129483 (0.0394371%)
charactor ' (
' (ASCII: 40) : 3935105
(1.19853%)
charactor ' )
' (ASCII: 41) : 3937486
(1.19925%)
charactor ' *
' (ASCII: 42) : 5294139
(1.61245%)
charactor ' +
' (ASCII: 43)
: 430409 (0.131091%)
charactor ' ,
' (ASCII: 44) : 4751289
(1.44712%)
charactor ' -
' (ASCII: 45) : 3191487
(0.972042%)
charactor ' .
' (ASCII: 46) : 1575165
(0.479753%)
charactor ' /
' (ASCII: 47) : 2321300
(0.707006%)
charactor ' 0
' (ASCII: 48) : 6915779
(2.10636%)
charactor ' 1
' (ASCII: 49) : 2120732
(0.645918%)
charactor ' 2
' (ASCII: 50) : 1714803
(0.522283%)
charactor ' 3
' (ASCII: 51) : 1087947
(0.33136%)
charactor ' 4
' (ASCII: 52)
: 986460 (0.300449%)
charactor ' 5
' (ASCII: 53)
: 606067 (0.184592%)
charactor ' 6
' (ASCII: 54)
: 808268 (0.246177%)
charactor ' 7
' (ASCII: 55)
: 468726 (0.142761%)
charactor ' 8
' (ASCII: 56)
: 901063 (0.27444%)
charactor ' 9
' (ASCII: 57)
: 481907 (0.146776%)
charactor ' :
' (ASCII: 58)
: 533928 (0.16262%)
charactor ' ;
' (ASCII: 59) : 3781891
(1.15186%)
charactor ' <
' (ASCII: 60)
: 532255 (0.162111%)
charactor ' =
' (ASCII: 61) : 2504666
(0.762855%)
charactor ' >
' (ASCII: 62) : 1980438
(0.603189%)
charactor ' ?
' (ASCII: 63)
: 50317 (0.0153252%)
charactor ' @
' (ASCII: 64)
: 93794 (0.0285672%)
charactor ' A
' (ASCII: 65) : 2650946
(0.807408%)
charactor ' B
' (ASCII: 66) : 1075072
(0.327438%)
charactor ' C
' (ASCII: 67) : 2480897
(0.755615%)
charactor ' D
' (ASCII: 68) : 1966210
(0.598855%)
charactor ' E
' (ASCII: 69) : 3211633
(0.978178%)
charactor ' F
' (ASCII: 70) : 1381906
(0.420892%)
charactor ' G
' (ASCII: 71)
: 960919 (0.29267%)
charactor ' H
' (ASCII: 72)
: 683768 (0.208258%)
charactor ' I
' (ASCII: 73) : 2626775
(0.800046%)
charactor ' J
' (ASCII: 74)
: 36313 (0.01106%)
charactor ' K
' (ASCII: 75)
: 447644 (0.13634%)
charactor ' L
' (ASCII: 76) : 1727130
(0.526038%)
charactor ' M
' (ASCII: 77) : 1720172
(0.523919%)
charactor ' N
' (ASCII: 78) : 1937673
(0.590164%)
charactor ' O
' (ASCII: 79) : 1814087
(0.552523%)
charactor ' P
' (ASCII: 80) : 1867258
(0.568717%)
charactor ' Q
' (ASCII: 81)
: 181357 (0.0552365%)
charactor ' R
' (ASCII: 82) : 2666262
(0.812072%)
charactor ' S
' (ASCII: 83) : 2613991
(0.796152%)
charactor ' T
' (ASCII: 84) : 2647271
(0.806288%)
charactor ' U
' (ASCII: 85) : 1124368
(0.342453%)
相关文章推荐
- 技术总监谈好的程序员如何写代码
- 李开复:算法的力量|万变不离其宗
- 一篇关于程序员性格的文章 …
- 一篇关于程序员性格的文章(…
- 今天学习了BASE64加密解密算法
- 漫谈信号与系统系列 (转载)
- 今天学习了Qt 2010 7 7
- 谈谈Qt的中文编码 又是转的
- 转的编译安装Lamp
- 今天学习了安装AMP服务器
- 四则表达式计算模板第二版
- C++流格式控制(2006-9-25 15:25:00…
- [Lintcode] Search Range in Binary Search Tree
- 模板方法模式
- stringstream的复制
- json字符串转换为JSONObject和JSONArray
- [网络]Unity的Socket通讯_2_数据传输
- Trump成功笔记4
- [Android] 点击listView的item无响应【解决办法】
- 图片懒加载