易截截图软件、单文件、免安装、纯绿色、仅160KB

linux文件系统变化通知机制

 一、dnotify机制
 1、使用
  通过对文件描述符设置监听信号实现。
  //设置文件相应信号
  fcntl(fd, F_SETSIG, SIGRTMIN + 1);
  //设置该文件要监听事件
  fcntl(fd, F_NOTIFY, DN_ACCESS|DN_MODIFY|DN_CREATE|DN_RENAME|DN_DELETE|DN_ATTRIB|DN_MULTISHOT);
  剩下的就是信号处理了。
 2、缺点
  缺点1:dnotify机制对监视的每个文件夹都打开了一个文件描述符,如果文件夹所在文件系统需要umount就不行了。
  缺点2:dnotify机制只能对文件夹进程监视。
 3、应用
 例子:
//要用fcntl( fd, F_SETSIG, SIGRTMIN + 1 )就要设置这个宏
#define _GNU_SOURCE 1
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
#define FOLDER_MAXLEN 128
static char listen_folder[FOLDER_MAXLEN];
static void myhandler( int );
int set_folder_signal( void )
{
struct sigaction act;
int fd;
act.sa_handler = myhandler;
sigemptyset( &act.sa_mask );
act.sa_flags = 0;
sigaction( SIGRTMIN + 1, &act, NULL );
if(( fd = open( listen_folder, O_RDONLY )) < 0 )
return -1;
printf( "fd=%d\n", fd );
fcntl( fd, F_SETSIG, SIGRTMIN + 1 );
fcntl( fd, F_NOTIFY, DN_CREATE );
return 0;
}
int main(int argc, char *argv[] )
{
if( argc != 2 )
{
printf( "%s filepath\n", argv[0] );
exit( 0 );
}
strncpy( listen_folder, argv[1], FOLDER_MAXLEN - 1 );
if( set_folder_signal( ) < 0 )
{
printf( "set signal to %s fail\n", argv[1] );
exit( 0 );
}
while( 1 )
{
pause();
printf( "a signal return\n" );
}
}
static void myhandler( int signo )
{
printf( "signalno=%d,a file was creat\n", signo );
set_folder_signal();
}
以上例子信号处理函数只能得到信号编号信息。可以通过sa_sigaction信号处理函数来获得更多信息,但也很有限。比如文件描述符。
例子:
//要用fcntl( fd, F_SETSIG, SIGRTMIN + 1 )就要设置这个宏
#define _GNU_SOURCE 1
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <


相关文档:

Linux iptable文档

总览
用iptables -ADC 来指定链的规

,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......

Linux下java环境变量设置方法

转贴:
现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java环境配置吧,希望对大家有帮助。
一. 下载jdk5.0 for linux
  到sun的主页 http://java.sun.com/j2se/1.5.0/download.jsp 下载jdk安装文件jdk-1_5_0_05-li ......

《Essential Linux Device Drivers》中文版第2章

-宋宝华(Barry Song)
在开始步入Linux设备驱动程序的神秘世界之前,让我们从驱动程序开发人员的角度看几个内核构成要素,熟悉一些基本的内核概念。我们将学习内核定时器、同步机制以及内存分配方法。不过,我们还是得从头开始这次探索之旅。因此,本章要先浏览一下内核发出的启动信息,然后再逐个讲解一些有意思的点。
......

Linux和Windows XP之间使用FTP互传文件

我是用虚拟机装了Linux,真实系统是Windows XP,在Windows XP下用Serv-u软件架设了FTP服务器,然后我们就可以在虚拟机的Linux下登录该FTP服务器下载或上传文件了,不同的仅是在Linux下是在命令行里输入相关FTP命令来完成的,应该也有像FlashFXP、CuteFTP这一类的Linux专用软件,不过我孤陋寡闻,不了解,也就不误人子弟了。 ......

linux zip 加密的shiyong


1.    
linux
命令的调试使用
 
以下是从网上查找来的
linux
命令
zip
的使用方法。如果有不知道命令如何使用你可以
man+[
命令
]
或者是
[
命令
]+

-h
”,来查看命令的使用方法。
 
zip
 
功能说明:压缩文件。
语  法:
zip
[-AcdDfFghj ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号