linux下c编程——dirmonitor

linux下c编程——dirmonitor

ID:9395100

大小:30.46 KB

页数:14页

时间:2018-04-30

linux下c编程——dirmonitor_第1页
linux下c编程——dirmonitor_第2页
linux下c编程——dirmonitor_第3页
linux下c编程——dirmonitor_第4页
linux下c编程——dirmonitor_第5页
资源描述:

《linux下c编程——dirmonitor》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Linux课程结课大作业编程,主要实现功能为监视指定文件夹变化并记录log,因为涉及多线程所以编译时记得加上-pthread操作系统大作业(2)实验报告、题目要求完成一个监视指定的若干目录变动情况的(服务)程序。一、程序的基本要求:1、程序遵守某一License2、程序用C/C++编写,能通过autoconfigure进行配置、编译和安装,程序运行在Linux上。3、程序源码包以.tgz或tar.gz方式提交。4、程序有相关使用说明文档,如Readme等。5、一旦该程序发现指定监视的目录中有文件或目录的

2、变化,就将这些变化记录到日志文件中。6、该程序有一个配置文件,服务启动时读取该配置文件,该程序也可以通过命令行启动,此时通过命令行输入的参数优先于读入指定的配置文件的参数。配置参数包含:扫描一遍指定目录的间隔时间指定监视的目录(服务程序可以同时监视若干目录)指定监视的文件类型,如只监视可执行文件和图形文件可以自由增加其他配置,丰富软件的功能和实用性要监控的文件或目录的变化包含:文件或目录的增删、修改和日期等可以自由增加其他变化,丰富软件的功能和实用性二、程序的扩展要求:1、该程序安装为Linux的系统服

3、务(daemon)2、该服务程序只能由root用户启动并运行3、辅助功能由Shell脚本完成,比如将程序安装为系统服务。4、将程序安装为一项系统服务,可以正常起停(如用/etc/init.d/foostart)。5、程序日志输出到系统日志syslog中供管理员查看。6、程序启动后能够稳定运行。7、在某一时刻只能有该程序的唯一副本运行。8、注意在服务停止的时候,程序能够释放资源并退出。程序能响应常用的控制台signal。、完成功能1.程序能监视多个指定文件夹,并能通过ftw()函数递归调用监视嵌套文件夹;

4、2.能监视最多5种不同后缀类型的文件,或监视所有文件、文件夹的变化;3.在用户输入参数不正确或者输入参数不足的时候,自动读取config文件监视test文件夹和所有文件;4.程序只能由root执行;5.程序某一时刻只能有唯一副本运行;6.程序同时输出到程序所在文件夹下的monitor_log文件和syslog中;1.程序能响应控制台的SIGINT信号,输出信息之后退出;、不足之处1.程序监视的完整路径字符长度不能超过100,且最多监视文件夹不能超过100;2.程序最多监视的文件类型为5种,切如果文件名中

5、包括了监视文件类型(如test.c.it.jpg)则会一并监视;3.程序可以直接通过./a.out执行成功,也可以打包成inotify-2.0.tar.gz文件无错误,但打包的tar.gz是只能在gcc版本为3.X的机器上编译成功(./configure,make,makeinstall),在ubuntu11.10gcc版本为4.6.1的环境下会报错如下:***bufferoverflowdetected***:testitterminated=======Backtrace:=========/lib

6、/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x37)[0x7fbe8a1ab7f7]/lib/x86_64-linux-gnu/libc.so.6(+0xf7710)[0x7fbe8a1aa710]/lib/x86_64-linux-gnu/libc.so.6(+0xf65e3)[0x7fbe8a1a95e3]testit[0x400b80]/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f

7、be8a0d430d]testit[0x400e9d]=======Memorymap:========00400000-00403000r-xp0000000007:002482177/usr/local/bin/testit00602000-00603000r--p0000200007:002482177/usr/local/bin/testit00603000-00604000rw-p0000300007:002482177/usr/local/bin/testit00604000-0060600

8、0rw-p0000000000:000022b5000-022d6000rw-p0000000000:000[heap]7fbe89e9d000-7fbe89eb2000r-xp0000000007:002117/lib/x86_64-linux-gnu/libgcc_s.so.17fbe89eb2000-7fbe8a0b1000---p0001500007:002117/lib/x86_64-linux-gnu/libgcc_s.so.1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。