Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

Java监控文件变化

Java监控文件变化

问题:存在两个文件目录,且称之为源目录和目标目录,需要不定期将源目录和目标目录进行同步。两种同步方法:1 采用从源目录到目标目录的完全拷贝覆盖。显而易见的缺点,当文件目录中文件多、体积大时拷贝过程时间消耗极大。2 采用从源目录到目标目录的变更集拷贝覆盖。避免了大量拷贝的IO耗时操作,但产生了新的问题:如何获取变更信息?新问题:如何监控一个文件目录的变更情况。还是两种方法:1 扫描式。不定期对源目录进行轮循扫描,获取变更。弱点:同样的,文件目录中文件多、体积...
使用GDB调试程序

使用GDB调试程序

在Linux平台上开发C/C++程序,GCC是最常用的编译器,GDB是最常用的调试工具,二者结合起来就可以利用C/C++在Linux平台上大展拳脚赖,上一回记录了GCC的一些用法,这一篇再记录一下GDB的使用,已备忘。GDB(GNU Debugger)是一个用来调试C/C++程序的调试器。它可以使你在程序运行的时候观察程序的内部结构以及内存的使用情况。例如:监视程序变量的值。可以设置断点以使程序在指定的点上暂停执行。能够使程序一行代码一行代码的执行下去。G...
GCC详解

GCC详解

GCC编译过程GCC是Linux上功能最强大的C语言编译器,在使用GCC编译程序的时候,编译过程分为4个阶段:预处理(Pre-Processing)这一步,GCC调用预处理程序cpp,将源文件中定义的宏展开,并将#include头文件的内容插入源文件,生成一个以.i为后缀的新文件。GCC -E 源码文件 -o 预处理生成文件编译(Compiling)这一步,GCC调用ccl程序将预处理生成的.i文件编译成以.s为后缀的汇编文件。GCC -S 预处理后的文件...
C语言不使用中间变量交换两个数

C语言不使用中间变量交换两个数

1. a^=b^=a^=b;2. a = a + b; b = a - b; a = a - b;网上听说有人在gcc下不使用编译优化的情况下第一种方法不起作用,特意尝试了下,结果是正确的。windows:visual studio 2005:通过linux:gcc 4.6.3 :通过strtok函数,用于分割字符串,第一次调用使用被分割字符串,后面使用null,指导返回null。另一个是strtok_r函数,功能类似。c89, c99支持,posix支持...
Java Swing 垂直流布局管理器实现

Java Swing 垂直流布局管理器实现

最近写一个java UI,需要用到垂直流布局管理器,要求该管理器能够实现内部组件的宽度自适应。看了swing提供的5个布局管理器,尝试的实现效果都不理想,看来只能自己搞一个了,好在网上已有实现,其测试效果如下图:图一 垂直流布局管理器实现效果具体代码如下:清单一:importjava.awt.Component;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.FlowLayo...
最轻量级的C协程库:Protothreads

最轻量级的C协程库:Protothreads

协程的好处不用再多说,作为与函数调用/返回相对的概念,它使我们思考问题的方式经历一场变革。现在我们关注的是C,由于C本身的特质,将协程引入其中将会是一 个挑战。无数先驱已经为这个目标抛了头颅洒了热血,于是我们有了libtask之类。而这里提到的,是一个堪称最轻量级的协程实现:Protothreads(主页:http://www.sics.se/~adam/pt/)。所谓最轻量级,就是说,功能已经不能再精简了,几乎就是原语级别的。——确实,这种最简带来了一些...
Android Handler Message多线程实例

Android Handler Message多线程实例

什么是Handlerhandler通俗讲就是在各个进程之间发送数据的处理对象。在任何进程中,只要获得了另一个进程的handler则可以通过 handler.sendMessage(message)方法向那个进程发送数据。基于这个机制,我们在处理多线程的时候可以新建一个thread,这 个thread拥有UI线程中的一个handler。当thread处理完一些耗时的操作后通过传递过来的handler向UI线程发送数据,由UI线程去更新界面。Handler类简...
如何使用Java synchronized进行线程同步

如何使用Java synchronized进行线程同步

这篇文章从网上找到的,作者是谁不详,因为到处都是转帖。看了之后,解开了我对synchronized的一些疑问,同时也验证了我之前的理解是正确的,记录下来。在java编程思想中对synchronized的一点解释:1、synchronized关键字的作用域有二种: 1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有多个synchronized方法,只要一个线程访...
C语言中通过函数指针实现函数重载

C语言中通过函数指针实现函数重载

我们都知道重载是c++面向对象的特性。c语言中是不存在的。所谓重载简单来说就是一个函数名可以实现不同的功能,要么输入参数不同或者参数个数不同,要么返回类型不同。例如函数add(),在c++中可以轻易实现int,double等不同类型参数的相加功能,而在c语言中却不能这样实现。c语言中实现重载功能,或者准确来说是类似重载的功能,可以通过函数指针的方式来实现。下面为演示代码:typedef struct _int_param { int param1; int...
正则表达式30分钟入门教程

正则表达式30分钟入门教程

正则表达式30分钟入门教程目录本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 更新纪录本文目标30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程最重要的是——请给我30分钟,如果你...
C语言中变长数组引发的思考

C语言中变长数组引发的思考

看到老师写的一个结构体很好奇,结构体的最后是一个长度为0的数组,当时感觉老师是不是写错了,这样写意义何在呢?都没有分配空间,貌似没有存在的意义。后来网上查了一下,其实这是在很多高级的东东里面都用到的东西,linux kernel, MFC, openoffice, 估计更多的地方都用到了。先说说我的理解:struct example{ __u16 tag_type; __u16 tag_len; char tag_data[0];} __attribute...
Python的Set和List的性能比较 + 两者之间的转换

Python的Set和List的性能比较 + 两者之间的转换

在Twitter上看到日本友人@IanMLewis的一条推,测试了下python中Set和List的性能差距,真是不测不知道一测吓一跳,差距能有数百倍 –!他的原文地址在这里:Pythonのセットがすごい。翻译成中文如下:本来是知道在Python中使用Set是比较高效,但是没想到竟然有这么大的差距:~$ python -m timeit -n 1000 "[x for x in range(1000) if x in range(500, 1500)]" ...
Linux 设备驱动轮询编程

Linux 设备驱动轮询编程

Linux系统下网络模型数select最为常用,当然,select只是检测文件系统数据状态,并不只局限于网络编程,select的功能需要底层驱动提供支持,其中核心应用即为等待队列,其他模型,如poll和epoll,对驱动来说并无区别,驱动只是返回数据状态而已。驱动支持select,需要实现file_operations结构中的poll函数指针,其实现也非常简单,只是poll_wait函数的调用,原型如下:unsigned int (*poll) (stru...
Linux 内核等待队列解析

Linux 内核等待队列解析

在阅读Tun驱动时看到,有一些类似 add_wait_queue 的函数,这些函数正是执行等待队列的相关操作,要说等待队列还得从内核进程调度说起,内核调度系统内进程,分配时间片,但是有些进程如从网卡中读数据,在网卡有数据到达之前进程处于阻塞状态,如果此时给相应进程分配时间片做调度,无疑是浪费系统资源,所以系统内每个进程都有自己的状态标志 task->state,这些状态定义于文件 include/linux/sched.h#define TASK_R...
Linux字符设备驱动框架详解

Linux字符设备驱动框架详解

所谓驱动程序,本质上讲是硬件接口,因为操作系统不可能实现每种硬件的接口,所以只对厂商提供接口,只要厂商实现这些接口,就可被操作系统调用,Linux系统驱动程序分为字符设备驱动和块设备驱动,所谓字符设备驱动就是例如键盘驱动,只能顺次读取数据,块设备驱动入硬盘等,可以随机分块读取。而有些程序虽然符合驱动程序规范,但却不真正驱动硬件,而是对操作系统功能的扩充,也称作内核模块。所以驱动程序和内核模块本质上讲属于同一种类别。操作系统对字符设备驱动提供 file_op...
<< 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 >>