LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: swordhui

求助: 一个获取文件信息的C语言程序.

[复制链接]
 楼主| 发表于 2009-9-21 20:12:07 | 显示全部楼层
Post by pinkme005;2028743
我还是先拼一个出来吧。。。加强等后期,我就是在想,MD5码到底存哪?MD5进行校验是可以用调用进行的。。。但是。。。校验码存哪儿呢??专门建个东西存校验码?


不用专门建, 直接把校验码输出到stdout(屏幕)即可. 用户可以根据需要重定向到数据库文件:Coffee:

只有符合CSV格式就可以, 这样以后做校验方便.
回复 支持 反对

使用道具 举报

发表于 2009-9-21 20:52:43 | 显示全部楼层
这倒是个不错的办法,不过对用户来说.....那么文件的校验码都能记得??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-21 22:46:22 | 显示全部楼层
Post by pinkme005;2028936
这倒是个不错的办法,不过对用户来说.....那么文件的校验码都能记得??

真正使用时要重定向到(记录到)数据库文件.  
数据库文件是文本文件, 每一行对应一个包中的文件, 包括文件路径, 类型, 最后修改时间, 大小, 校验码等字段, 用逗号隔开(标准CSV).
每个软件包都对应一个这样的文件.

通过这些文件, 用户可以知道系统装了多少软件包, 每个软件包的组成, 每个文件的详细信息, 包括校验码.

用户可以用一个命令, 校验当前系统中的文件自安装后, 是不是被改动过.
或全局校验, 找出被修改过的文件.
回复 支持 反对

使用道具 举报

发表于 2009-9-23 00:04:48 | 显示全部楼层
....这样需要一个高效的文本处理工具了,如果东西多了,文本文件大了,速度可能就打折扣了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-23 21:00:31 | 显示全部楼层
Post by pinkme005;2029306
....这样需要一个高效的文本处理工具了,如果东西多了,文本文件大了,速度可能就打折扣了

一般来说, 文件不会过大, 上千行的应该不多.
CSV处理应该有现成的代码库, 用CSV就是想重用一些代码;)

如果CVS效率低的话, 可以用sqlite, 这个很专业. 不过这是第二步的事情了.
回复 支持 反对

使用道具 举报

发表于 2009-9-25 22:30:44 | 显示全部楼层
慢慢看ls源码中..先找个简单的看看再说
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-25 23:19:55 | 显示全部楼层
ls.c确实复杂一些. 可以从简单的开始, 先研究一下fstat函数族.
回复 支持 反对

使用道具 举报

发表于 2009-9-26 19:20:40 | 显示全部楼层
找了个busybox的ls.c在看,那个简单些,500来行
回复 支持 反对

使用道具 举报

发表于 2009-9-27 22:11:31 | 显示全部楼层
看了一小部分ls.c的源码,有了些眉目了,这个文件信息获取程序应该可以实现
回复 支持 反对

使用道具 举报

发表于 2009-9-28 22:18:23 | 显示全部楼层
已经可以成功读出权限码了,原来一切很简单......
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表