keep_simple

导航

11 2013 档案

inotify监听文件夹的变动
摘要:inotify只能监控单层目录变化,不能监控子目录中的变化情况。如果需要监控子目录,需要在调用inotify_add_watch(int fd, char *dir, int mask):int建立监控时,递归建立子目录的监控,伪代码如下void addwatch(int fd, char *dir, int mask){ wd = inotify_add_watch(fd, dir, mask); 向目录集合加入(wd, dir); for (dir下所有的子目录subdir) addwatch(fd, subdir, mask);}这样就可以得到一个目录集合... 阅读全文

posted @ 2013-11-10 13:39 keep_simple 阅读(2248) 评论(0) 推荐(0)

Linux inotify功能及实现原理
摘要:1. inotify主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。众所周知,Linux 桌面系统与 MAC 或Windows相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,inotify 是一种文件系统的变化通知机制, 阅读全文

posted @ 2013-11-10 10:35 keep_simple 阅读(662) 评论(0) 推荐(0)

区分各类编译器与操作系统的宏
摘要:转载自:http://blog.csdn.net/wulibin136/article/details/6358521编译器GCC#ifdef__GNUC__#if __GNUC__ >= 3 // GCC3.0以上Visual C++#ifdef_MSC_VER(非VC编译器很多地方也有定义)#if _MSC_VER >=1000 // VC++4.0以上#if _MSC_VER >=1100 // VC++5.0以上#if _MSC_VER >=1200 // VC++6.0以上#if _MSC_VER >=1300 // VC2003以上#if _MSC_V 阅读全文

posted @ 2013-11-09 20:55 keep_simple 阅读(688) 评论(0) 推荐(0)

编译器各种宏使用总结
摘要:转:C/C++中宏总结C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性。ANSI标准定义的C语言预处理程序包括下列命令:#define,#error,#include,#if,#else,#elif,#endif,#ifdef,#ifndef,#undef,#line,#pragma等。非常明显,所有预处理命令均以符号#开头,下面分别加以介绍。命令#define定义了一个标识符及一个串。在源程序中每次遇到该标识符时,均以定义的串代换它。ANSI标准将标 阅读全文

posted @ 2013-11-09 20:52 keep_simple 阅读(2331) 评论(0) 推荐(0)

windows线程退出的方法
摘要:线程的handle用处:线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问。该内存块是一种数据结构,它的成员负责维护对象的各种信息(eg: 安全性描述,引用计数等)。CloseHandle()在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。但是这个handle并不能完全代表这个线程,它仅仅是线程的一个“标识”,系统和用户可以利用它对相应的线程进行必要的操纵。如果在线程成功创建后,不再需要用到这个句柄,就可 阅读全文

posted @ 2013-11-09 19:48 keep_simple 阅读(4539) 评论(0) 推荐(0)