当前位置:首页 » 编程语言 » 重量级监控系统c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

重量级监控系统c语言

发布时间: 2022-11-02 19:27:47

Ⅰ 智能视频监控系统详细设计思路

随着宽带有线和无线网络基础设施的完善以及全球安防市场需求的增长,视频监控的应用正呈爆发性的增长态势。视频监控系统的发展趋势非常明显,在经历了数字化和网络化之后,下一个重要的趋势就是智能化,即智能监控和视频分析技术的应用。

传统的视频监控由人工进行视频监测发现安全隐患或异常状态,或者用于事后分析,这种应用具有其固有的缺点,难以实现实时的安全监控和检测管理。带有智能分析功能的监控系统可以通过区分监控对象的外形、动作等特征,做到主动收集、分析数据,并根据预设条件执行报警、记录、分析等动作。智能监控系统可以运行于服务器,也可以运行在基于DSP的嵌入式系统上,而后者已逐渐成为主流。

智能视频的应用大体上可以分安防、人体行为检测和智能交通三方面的应用。其中安防应用是被广泛认为是最具潜力的市场,它包括以下几个应用类别:入侵检测,可以自动检测出视频画面中的运动行为特征;物品移除检测,可以自动检测物品搬移事件——当防区内某特定位置的物品被拿走或搬走时发出报警;遗留物检测,可以对遗弃物进行自动检测——当物品在某个防区内被放置或遗弃的时候自动报警;智能跟踪,可以使摄像机对自身的云台和变焦镜头进行自主PTZ驱动。人体行为检测应用包括脱岗检测(可以实现自动检测岗哨人员就位情况)、徘徊检测(对重要区域人体徘徊检测)。智能交通应用包括:对非法停留的交通工具进行检测,当交通工具在防区内非法停留时发出报警;车辆逆行检测,及时辨别逆行车辆。

随着准确率和可靠性逐步提高及产品成本的下降,智能视频在越来越多的场合得到了应用,它能够替代部分安防设备,降低安保人员的工作强度,提高工作效率,减少管理成本。事实上,智能视频的应用具有非常巨大的潜力。随着技术日趋成熟,智能视频技术的应用领域正在迅速扩展,这些应用主要包括上述的安防、交通以及零售、服务等行业,如人数统计、人脸识别、人群控制、注意力控制和交通流量控制等。

实时视频监测的需求正在快速增长,特别是随着实时安全监控应用的需求增加,实时发现安全隐患或目标异常行为的功能已经具有越来越重要的现实意义,智能视频监测系统产品在这种日益增长的需求带动下,正在成为视频监控应用的新热点。特别是随着半导体技术的进步,例如以Blackfin汇聚式处理器为代表的先进嵌入式解决平台方案的推出,具有极高性价比和极高实用性的智能视频分析设备不断推出,并在一些关键应用中发挥极为重要的作用。 图1:传统的视频监控应用示意图。

智能视频应用设计攻略

硬件平台方案的选择往往决定了系统的整体方案成本、性能、开发工具和方法的可用性,以及方案未来持续升级的可行性等,因此方案平台选型至关重要。智能视频应用自身的独特性要求在硬件平台的选择上进行综合权衡。视频监控系统的网络化和智能分析要求,以及大规模工程安装对成本、体积和功耗的限制,非标准化的智能视频分析方法和几乎定制化的方案优化方式,使得结合了MCU和DSP优势、具有软件设计灵活性和强大处理能力的汇聚式处理器方案平台体现出更加明显的优势。本文将结合ADI公司独特的Blackfin汇聚式DSP处理器的特点,分析智能视频设计中主要的设计技术要点。

一、硬件平台选型

可定制化能力非常重要。有很多因素制约着视频监控系统智能化的应用步伐:首先是智能监控的视频算法比较复杂,难于标准化,各个系统提供商的视频分析软件都有自己的独特算法,导致市场上的产品没有统一的标准;其次,视频监控系统的应用场景比较复杂,用户的要求多样化,所以定制化的要求比较多。因此,视频分析方案通常需要针对客户的应用特点和需求进行方案优化,采用的算法千差万别。此外,由于智能视频应用的高复杂性,对方案的处理能力提出了更高的要求。MCU+ASIC的视频监控传统方案难以实现各种个性化的设计和高运算能力要求,即使选择普通DSP+MCU的双芯片方案通常也难以满足智能视频监控应用的复杂运算需求,需要增加协处理器,这种复杂的解决方案无论是BOM成本、功耗还是开发难度都不足取。Blackfin处理器充分发挥了MCU+DSP汇聚式架构的优势,满足了智能视频应用的系统控制和高强度的运算需求,特别是以BF561为代表的高性能双内核架构已经成为智能视频应用的首选方案平台。

方案的可扩展性也是需要考虑的因素。智能视频分析应用除了需要针对应用环境、应用目的进行方案优化外,不同的客户可能还有其他方面的不同需求。例如,当前一些领先的数字视频监控方案实现了H.264基本类@Level3.0和MPEG4 D1+CIF双码流的支持,未来可能扩展到支持H.264 D1+CIF的双码流。随着智能视频分析的更广泛应用,如IP摄像机、无线视频监控、智能交通系统等,不同应用都可能对各种接口功能、通信标准、用户界面等的需求有较大的差异化,硬件平台方案对各种需求的灵活扩展性非常重要。同时,正如前文所述,智能视频分析技术发展不过数年的时间,随着技术的不断成熟以及一些相关的标准的出台和改进,产品的可升级特性至关重要,既是开发者须关注的问题也是终端客户关切的重要特性。Blackfin DSP在算法并行处理上具有独特优势,特别是ADSP-BF561采用双DSP核,能够实现很复杂的智能视频处理算法。

视频应用优化特性。一些方案尽管具有较强的处理能力和可扩展性,方案是否主要针对视频应用进行过优化设计也值得关注,因为这直接关系到设计工程师可用的软硬件设计资源以及系统设计难度和可实现的性能。以Blackfin处理器为例,Blackfin为高强度、高数据率的数字和媒体处理做了专门优化:Blackfin的几十个DMA通道和可灵活配置的Cache很好地满足了视频监控系统对大运算量、高数据吞吐率的要求;ADI专门开发了完全优化的音视频编解码器,并免费提供给大客户;针对视频应用Blackfin集成了很多硬件驱动,包括WiFi的驱动、音/视频编解码器的驱动;Blackfin的4个视频算术运算单元和视频象素指令集大大加速了视频运算速度;在智能视频分析的一些基础算子中,例如直方图统计、中值运算、Sobel运算、形态学中的膨胀运算等都可以利用Blackfin的MIN、MAX指令来消除条件跳转,节省处理器周期。不仅如此,Blackfin还支持13种非视频数据的向量运算。适当设计数据结构,在前背景分离、阈值计算和更新等多个环节都可以运用Blackfin的特色指令让智能视频分析算法更快捷。这些本身就很有效的指令中,大部分指令都能够并行执行,使得Blackfin的处理能力再加倍。

低功耗和稳定性很重要。考虑到智能视频监控设备通常都是一周7天,每天24小时运行的,稳定性和功耗也比较重要。在低功耗上,Blackfin处理器采用了多种节能技术:基于一种选通时钟内核设计,可按照逐条指令来选择性地切断功能单元的电源;支持多种针对所需CPU动作极少期间的断电模式;Blackfin处理器支持一种自含动态电源管理电路,借助该电路即可对工作频率和电压进行独立控制,以满足正在执行的算法的性能要求;大多数Blackfin处理器都提供片上内核稳压电路,并可在低至0.8V的电压下工作。而Blackfin独特的汇聚式处理架构、90nm工艺等打下了其领先的低功耗处理的基础。由于高处理能力,基于Blackfin平台的系统方案可以减少主芯片数量,丰富的功能和接口可以满足各种外设和功能扩展需求,降低元器件数量,从而保证更高的稳定可靠性。目前在同价位DSP中Blackfin DSP的低功耗特性和稳定性是最好的。

支持哪些嵌入式操作系统。智能视频分析通常是基于网络的应用,必须要操作系统的支持,因此选择具有广泛嵌入式系统支持能力的解决方案非常重要,这样能确保未来产品在更换操作系统时不至于必须更换硬件平台,保证研发成果的持续可用性。目前可用的嵌入式操作系统众多,各具优势,硬件平台方案对这些操作系统的支持能力是进行方案选型的考虑要点之一。例如,Blackfin处理器可以支持目前主流的操作系统,包括uCLinux、ThreadX、Nucleus,uCOS-II等十多种嵌入式操作系统,客户完全可以根据其自身要求选择其熟悉的或更具成本效益的软件架构基础。 图2:基于BF561的智能监控终端框图。

二、开发工具和可用资源

智能视频监控设备是一个复杂的系统,涉及到复杂的软硬件设计、人机界面、通信连接等,具有较高的系统设计难度。因此,所选择的硬件平台方案是否能提供完善的开发工具套件、必要的软件模块、成熟的参考设计、系统设计支持,以及是否有完整的设计生态系统等,对于是否能按期高质量地完成系统设计非常关键。事实上,并不是所有平台方案提供商都能提供这些支持。

以Blackfin系列处理器为例,采用Blackfin处理器的硬件平台从一般的DVR、IP摄像机、数字视频监控到智能视频监控,已经被全球大量的设备企业的广泛采用。Blackfin处理器获得众多企业的青睐,具有完整的开发工具和参考设计等支持是其受广泛欢迎的重要原因之一。ADI提供业界一流的工具、初学套件与支持,包括人们熟知的、能够支持其他Blackfin处理器的ADI CROSSCORE?软件与硬件工具,这些工具包括获奖的VisualDSP++?集成开发与调试环境(IDDE)、仿真器,以及EZ-KIT Lite?评估版硬件。

为提高开发效率,降低开发难度,开发时应尽量在已有的资源上进行,比如开放的例程,ADI为此提供了非常丰富的例程和资料。例如,ADI提供免费的“Image Tool Box”图像处理函数库软件包,该软件包专门针对图像处理应用常用的数学函数进行了优化,供客户在进行应用开发时调用。ADI还提供完整的参考设计,以及由本地合作伙伴开发的评估板、开发工具、算法IP、应用模块,以及由第三方合作伙伴提供包括软硬件在内的全套交钥匙方案。Blackfin处理器的视频监控应用目前在中国已经有多家具有丰富工程经验的第三方合作伙伴,已经建立完善的生态系统。

以ADI在今年三月份宣布提供基于该公司Blackfin BF526C的完整的IP监控和机器视觉摄像头参考设计为例,该参考设计在单个汇聚处理器上提供了强大的视频和音频处理能力,为工程师提供了一个统一的软件开发环境,可以实现更快的系统调试和部署,以及更低的系统成本。该处理器提供了集成的音频编解码器、流式视频和IP协议、片上DRAM存储器以及针对10/100以太网、USB和SD存储和本地RS-232端口的接口。这种完全可编程的解决方案可以满足多种视频压缩标准,例如H.264和MPEG4,支持音频G.729标准的编码。支持从控制中心到相机的双向语音通信,以及利用Pelo-P或Pelo-D协议的镜头平移、倾斜和拉伸动作。该参考设计还提供一块带双核BF561处理器的子卡,使系统能实现更高视频分辨率,并提供实现高级视频分析功能,如运动检测和跟踪。

应用方案揭秘——亿维东方智能网络摄像机

北京亿维东方科技有限公司(Emvideo)是专业智能安防产品的方案提供商,也是美国ADI公司授权的第三方合作伙伴。亿维东方目前有多款基于ADI Blackfin处理器为核心的硬件平台的产品,其中“软件+硬件”交钥匙的WiFi无线视频监控整体解决方案基于BF536+BF561的双处理器架构,方案硬件结构图如图3所示。

其中BF536处理器作为主处理器,除负责完成音频编码、远程控制以及用户交互控制等一些基本的管理与控制外,还负责嵌入式操作系统uClinux的运行,以及先进的智能视频分析功能,可以完成安防、人体行为、智能交通等多种智能视频分析。双核BF561作为协处理器负责视频编码算法,其强大的视频处理能力使得该方案实现了H.264基本类@Level3.0和MPEG4 D1+CIF双码流的支持,未来更将可能扩展到能够支持H.264 D1+CIF的双码流。两个处理器之间可以通过高速同步串行接口通讯,视频信号首先进入BF561处理器,采集编码后的码流发送到BF536处理器,然后通过网络发送到客户端进行解码显示。 图3:采用Blackfin BF536和BF561的解决方案硬件结构图。

该方案采用了先进的背景建模方法,能有效地克服光线变化、树叶摆动以及水面波纹等背景对前景目标分析产生的干扰,实现准确的前景检测,同时在目标跟踪上采用了独特的优化算放,实现了在入侵检测(包括区域警戒、绊线检测)的应用上超过90%的准确率。而所有这些都是基于BF536+BF561双处理器的硬件架构所具有的强大处理能力来实现的。

该方案的智能视频分析功能由亿维东方公司自主开发,独特的算法和丰富的智能视频分析技术开发经验确保实现客户的智能识别应用需求,并为客户提供包括软件升级在内的完善服务。由于智能视频识别应用目前并没有任何可循的需求标准和测试标准,因此视频分析方案通常需要针对客户的应用特点和需求进行方案优化。例如有些用户是地铁系统的,他们需要的功能是检测是否跨越候车的黄线、人群密度是否过大、是否有可疑的遗留物体等;有些用户是银行系统的,他们所需要的是ATM机的智能监控如分析是否有安装假键盘、安装吞卡器,在ATM机是否有暴力行为,是否出现犯罪分子的人脸等。利用该方案,客户可以根据用户的需求方便地进行调整算法。智能视频处理要求芯片具有强大的处理能力,有许多算法实现时得采用并行处理,Blackfin DSP在算法并行处理上具有独特的优势,特别是ADSP-BF561的双DSP核能够实现很复杂的智能视频处理算法。这是传统的MCU+ASIC或采用一般DSP方案所难以实现的。

该方案的软硬件都经过了应用验证,目前已经由多家客户进行生产,目标应用将主要是政府行政效能监测、教育系统等行业用户。

Ⅱ 如何在Linux下用c语言创建守护进程并监控系统运行期间的所有进程

可以分三步来做:
做两个简单的守护进程,并能正常运行
监控进程是否在运行
启动进程
综合起来就可以了,代码如下:
被监控进程thisisatest.c
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>

void init_daemon()

Ⅲ 什么是c语言c语言涉及哪些方面

C语言是一种编程语言,是一种高级语言,但实际上
并不“高级”,只是相对低级语言在一个高的级别上进行编程
,c语言
历史悠久,战勋卓着
诞生于20世纪70年代初,成熟于80年代
很多重量级软件都是用C语言写的
上天入地,无所不能
几乎没有不能用C语言实现的软件,没有不支持C语言的系统
很多流行语言、新生语言都借鉴了它的思想、语法
从C++,到Java,再到C#.
使用c语言大概只限于下面四大领域:1,编写操作系统和基础工具
。2,对运行效率要求较高的系统
设备驱动程序,高性能、实时中间件,嵌入式领域,并发程序设计等
。3,继承和维护已有的C代码。4
交流、笔试、面试时最常见的语言

Ⅳ 什么叫C语言

C语言是目前世界上流行、使用最广泛的高级程序设计语言。

C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的。

C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画它是数值计算的高级语言。

常用的编译软件有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C,等等......

C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BGPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名着《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多着名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。

C语言的特点

1. 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。

2. 运算符丰富

C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

3. 数据结构丰富

C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

4. C是结构式语言

结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

5. C语法限制不太严格、程序设计自由度大

一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。而C语言允许程序编写者有较大的自由度。

6. C语言允许直接访问物理地址,可以直接对硬件进行操作

因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。

7. C语言程序生成代码质量高,程序执行效率高

一般只比汇编程序生成的目标代码效率低10へ20%。

8. C语言适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。

Ⅳ c语言编程,一个应用程序如何判断另外一个被监控的应用程序的存活与否若用心跳实现,如何设置心跳机制

APP-2每1分钟发一个心跳包给APP-1。APP-1如果超过1分钟没收到,可以累计记录x++,收到心跳包x清零。当x=2时,可以发送一个ack包给APP-2,如果APP-2还是没有回应,即x=3时,可以确定APP-2down掉。x在1~3直接时是网络阻塞。具体操作时间还需要自行确定。

Ⅵ 如何在linux系统上用c语言编写图形化监控系统

有基于Qt的和基于GTK+两种API的 ,Qt是c++,GTK+是c

Ⅶ 如何在Linux下用c语言创建守护进程并监控系统运行期间的所有进程

可以分三步来做:


  1. 做两个简单的守护进程,并能正常运行

  2. 监控进程是否在运行

  3. 启动进程


综合起来就可以了,代码如下:
被监控进程thisisatest.c(来自):
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>


void init_daemon()
{
int pid;
int i;
pid=fork();
if(pid<0)
exit(1); //创建错误,退出
else if(pid>0) //父进程退出
exit(0);

setsid(); //使子进程成为组长
pid=fork();
if(pid>0)
exit(0); //再次退出,使进程不是组长,这样进程就不会打开控制终端
else if(pid<0)
exit(1);


//关闭进程打开的文件句柄
for(i=0;i<NOFILE;i++)
close(i);
chdir("/root/test"); //改变目录
umask(0);//重设文件创建的掩码
return;
}


void main()
{
FILE *fp;
time_t t;
init_daemon();
while(1)
{
sleep(60); //等待一分钟再写入
fp=fopen("testfork2.log","a");
if(fp>=0)
{
time(&t);
fprintf(fp,"current time is:%s ",asctime(localtime(&t))); //转换为本地时间输出
fclose(fp);
}
}
return;
}


监控进程monitor.c:
#include<unistd.h>
#include<signal.h>
#include<stdio.h>
#include<stdlib.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<time.h>


#include<sys/wait.h>
#include<fcntl.h>
#include<limits.h>


#define BUFSZ 150


void init_daemon()
{
int pid;
int i;
pid=fork();
if(pid<0)
exit(1); //创建错误,退出
else if(pid>0) //父进程退出
exit(0);


setsid(); //使子进程成为组长
pid=fork();
if(pid>0)
exit(0); //再次退出,使进程不是组长,这样进程就不会打开控制终端
else if(pid<0)
exit(1);


//关闭进程打开的文件句柄
for(i=0;i<NOFILE;i++)
close(i);
chdir("/root/test"); //改变目录
umask(0);//重设文件创建的掩码
return;
}


void err_quit(char *msg)
{
perror(msg);
exit(EXIT_FAILURE);
}


// 判断程序是否在运行
int does_service_work()
{
FILE* fp;
int count;
char buf[BUFSZ];
char command[150];
sprintf(command, "ps -ef | grep thisisatest | grep -v grep | wc -l" );


if((fp = popen(command,"r")) == NULL)
err_quit("popen");


if( (fgets(buf,BUFSZ,fp))!= NULL )
{
count = atoi(buf);
}
pclose(fp);
return count;
// exit(EXIT_SUCCESS);
}




void main()
{
FILE *fp;
time_t t;
int count;
init_daemon();
while(1)
{
sleep(10); //等待一分钟再写入
fp=fopen("testfork3.log","a");
if(fp>=0)
{
count = does_service_work();
time(&t);
if(count>0)
fprintf(fp,"current time is:%s and the process exists, the count is %d ",asctime(localtime(&t)), count); //转换为本地时间输出
else
{
fprintf(fp,"current time is:%s and the process does not exist, restart it! ",asctime(localtime(&t))); //转换为本地时间输出
system("/home/user/daemon/thisisatest"); //启动服务
}


fclose(fp);
}
}
return;
}


具体CMD命令:


cc thisisatest.c -o thisisatest
./thisisatest
cc monitor.c -o monitor
./monitor


tail -f testfork3.log -- 查看日志

Ⅷ 如何在Linux下用c语言创建守护进程并监控系统运行期间的所有进程

这跟execvp函数的实现方式有关:
int execvp(const char *file ,char * const argv []);

execvp()会从PATH 环境变量所指的目录中查找符合参数file的文件名,找到后便执行该文件,然后将第二个参数argv传给该欲执行的文件。如果执行成功则函数不会返回,执行失败则直接返回-1,失败原因存于errno中。

之所以显示“fail to exec”,是因为在PATH环境变量所指的目录中没有名为“hello”的程序。建议进行如下操作:
1、运行“echo $PATH”,查看一下PATH环境变量指向那些目录
2、编写一个输出“hello world”的程序,并命名为hello,即执行命令:
gcc -o hello hello.c
3、把名为”hello“的程序拷贝到PATH变量所指的其中一个目录中

Ⅸ linux下怎样用c语言做实时监控目录中文件数量变化的程序

有一个头文件叫inotify.h ,这是linux 内核中的一个特性,可以用来监控目录

Ⅹ 如何用C语言监视一文件,(可以隔一定时间检测该文件),当文件相比较上一时间有改动时,读出改动处

、“网络监视器”的基本使用

欲打开“网络监视器”,只需依次选择“开始→程序→附件→系统工具→网络监视器”即可进入其主窗口。
对于“网络监视器”中的功能,既可以选择菜单中的相应项目,也可以通过直接单击工具栏上的相应按钮来实现。在其主窗口工具栏上的按钮,从左到右作用依次为:
1.选择服务器:通过它可对其他计算机的“网络监视器”进行远程管理。具体的使用方法请参见后文相关内容。
2.断开用户连接:通过它可强行中断列表中指定用户对本机的连接。
3.关闭文件:通过它可强行关闭列表中指定用户所打开的指定共享文件。
4.添加共享:通过它可根据提示直接添加本机的共享资源,并为它设置相应权限。
5.停止共享:通过它可停止列表中指定资源的共享。
6.显示用户:这相当于选“查看”菜单中的“按连接”项,它是“网络监视器”主窗口的默认状态,也是最常用的窗口。此处可以查看到已连接到本机的客户机的用户名、计算机名、打开了些什么共享资源、打开些什么文件以及连接的时间和空闲的时间等资料。当客户机断开连接之后它就会自动从此列表中消失。
7.显示共享的文件夹:这相当于选“查看”菜单中的“按共享的文件夹”项。它可以查看本机已共享的资源及其共享名和权限;可添加共享,停止共享,修改共享等。
8、显示文件:这相关于选“查看”菜单中的“按打开的文件”项。它可以查看已打开的本服务器文件;可关闭文件等。

三、“网络监视器”的远程监视

本文上面部分已经讲过“网络监视器”在本地计算机上的基本使用方法,但实际上在一定条件满足的情况下,它也可以对局域网内的其他计算机进行完全相同的远程管理。请进行如下的操作:
1.启用远程管理
在远程计算机上,先进入其“控制面板→密码→远程管理”窗口,再勾选中“启用此服务器的远程管理”,接着在相应位置输入密码后按“确定”按钮保存退出。
2.使用远程管理
在本地计算机上,先进入“网络监视器”的主窗口,再选“管理员”菜单中的“选择服务器”项,在“请输入要进行管理的服务器名”的提示窗口中的“名称”处输入远程计算机的名字(比如为zhuyan),然后按“确定”按钮继续;系统接着会提示“必须提供密码才能连接”,则请在“密码”后输入“启用远程管理”一步中所设的密码值,最后按“确定”按钮即可得到新的“网络监视器”的窗口,里面当然是远程计算机的共享内容了,你所要做的,就是进行正常操作就可以啦!

注意:
1.如果在“使用远程管理”操作中,当进行到输入密码一步勾选中了“请将密码保存到密码列表”项,则当你以后再连接到远程计算机时就不用输入密码了。
2.如果要想修改共享文件夹名或其权限设置,则需要在“显示共享的文件夹”窗口中,先在列表中选中该用户,然后按键盘上的ALT+ENTER键(或者选“管理员”菜单中的“共享文件夹的属性”项),再根据提示进行操作即可。