LinuxSir.cn,穿越时空的Linuxsir!

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

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

[复制链接]
发表于 2009-9-30 12:19:30 | 显示全部楼层
如果做成LFS包管理器,建议从BLFS基本包完成后开始,也就是说在X11完成以后进行记录,主要对象应该为日常使用的小软件包,对于KDE/GNOME/QT/GTK这样的大型应用软件/开发工具,建议用户自己操控,毕竟升级的时候不是很多,用户也知道它们在哪儿,应该放哪儿.
对于一些小软件或者以体验为目的的新鲜软件可以实施软件包管理\记录,主要目的为查询\删除,便于用户清理磁盘垃圾,因为这些东西装到哪儿去了,什么时候装的,时间久了真的记不住,以日后删除的时候可能会把不相干的东西也一并删除了,导致系统不稳定.我的FIREFOX的淘宝插件就是这样死掉的.所以 .....LFS包管理器应该征对有丰富使用LINUX经验的LFS用户,而非懒人或新用户专用.
       这样一来,一方面可以减轻软件制作的难度,另一方面也可以少占系统空间,提高运行效率
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-9-30 14:06:44 | 显示全部楼层
Post by pinkme005;2031923
如果做成LFS包管理器,建议从BLFS基本包完成后开始,也就是说在X11完成以后进行记录,主要对象应该为日常使用的小软件包,对于KDE/GNOME/QT/GTK这样的大型应用软件/开发工具,建议用户自己操控,毕竟升级的时候不是很多,用户也知道它们在哪儿,应该放哪儿.
对于一些小软件或者以体验为目的的新鲜软件可以实施软件包管理\记录,主要目的为查询\删除,便于用户清理磁盘垃圾,因为这些东西装到哪儿去了,什么时候装的,时间久了真的记不住,以日后删除的时候可能会把不相干的东西也一并删除了,导致系统不稳定.我的FIREFOX的淘宝插件就是这样死掉的.所以 .....LFS包管理器应该征对有丰富使用LINUX经验的LFS用户,而非懒人或新用户专用.
       这样一来,一方面可以减轻软件制作的难度,另一方面也可以少占系统空间,提高运行效率

我认为应该从第一个软件包开始, 即Linux-header. 目标是保证每个系统目录下的文件都有记录.
回复 支持 反对

使用道具 举报

发表于 2009-9-30 17:27:31 | 显示全部楼层
这样的话效率会很成问题,数据库也会非常庞大,不符合LFS的简洁的特性,并且LFS用户大多很熟悉LINUX了,防毒的功能还是交给专门的杀毒软件吧,最多对重要的系统库进行一下监视,kenrel/libc/disk tools
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-1 21:18:46 | 显示全部楼层
Post by pinkme005;2032013
这样的话效率会很成问题,数据库也会非常庞大,不符合LFS的简洁的特性,并且LFS用户大多很熟悉LINUX了,防毒的功能还是交给专门的杀毒软件吧,最多对重要的系统库进行一下监视,kenrel/libc/disk tools

又是机制和策略的经典问题.
工具提供最基本的机制, 就是记录包的文件, 包括校验信息.
具体怎么使用, 没必要做任何假定.

喜欢这种机制的可以用这个工具, 不喜欢这种机制的可以换其他工具.

要点是这个工具简洁高效
回复 支持 反对

使用道具 举报

发表于 2009-10-7 23:51:06 | 显示全部楼层
文件信息获取部分已经初步完成,下一步将进行容错处理和提高执行效率,开始研究md5sum和sha256的校验方法,力争早日完成文件校验码的处理。

*目录文件识别
./a.out
nw
file name is :nw
file mode is:775
the file size is :48
the last modified time count is  :1254172671
the last modified time is :Mon Sep 28 21:17:51 2009
the file type is : D

drwxrwxr-x 2  *** ***    48 Sep 28 21:17 nw

*普通文件识别
./a.out
ls.c
file name is :ls.c
file mode is:664
the file size is :14518
the last modified time count is  :1253991076
the last modified time is :Sat Sep 26 18:51:16 2009
the file type is :F

-rw-rw-r-- 1 *** *** 14518 Sep 26 18:51 ls.c

*链接文件识别
./a.out
tes
file name is :tes
file mode is:777
the file size is :3
the last modified time count is  :1254959305
the last modified time is :Wed Oct  7 23:48:25 2009
the file type is :S

lrwxrwxrwx 1 *** *** 3 Oct  7 23:48 tes -> tes

ls出来的用户组被我用 *** ***代替了:daniu:
回复 支持 反对

使用道具 举报

发表于 2009-10-7 23:58:24 | 显示全部楼层
md5直接调用libc算了,我想执行效率肯定比自己写的高。。。。那个sha256还要不要做?md5还不够用?
不行看看md5的源码写一段md5代码进行算了,省心。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-9 12:34:54 | 显示全部楼层
校验只要有一种方式就够了, 可以忽略sha256
回复 支持 反对

使用道具 举报

发表于 2009-10-9 13:03:46 | 显示全部楼层
插句嘴: 用于严格校验时,使用两组独立的校验方法是必须的。
久经考验的文件系统安全校验工具都是这么处理的,连 CA 发布的用于 https 的证书也是双校验。
原因很简单,可以伪造一文件满足单一校验方式文件的校验和,但要同时满足两种校验方式几乎不可能。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-9 20:18:59 | 显示全部楼层
伪造文件太困难的话, 可以伪造校验码;)
回复 支持 反对

使用道具 举报

发表于 2009-10-9 20:36:16 | 显示全部楼层
严肃的用户,会把 备份文件、校验和 放在安全的地方,与原始系统隔离开。

您自己玩,请随意。
回复 支持 反对

使用道具 举报

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

本版积分规则

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