libuv中关于linux-syscalls和linux-inotify模块

Linux-syscalls这个模块主要是定义了一些系统调用和一些常量,这样做主要是为了弥补一些较旧的glibc没有提供比如inotify等等头文件的缺点。当然它不会去实现这些系统调用。

从代码上看,它屏蔽了不同的cpu架构,对外提供统一的接口。这些接口,有套接字相关的、epoll相关的、inotify相关、读写相关、管道相关等等。

系统调用

接口

__NR_socketcall

Socket函数

__NR_accept4

Accept函数

__NR_eventfd

Eventfd函数

__NR_eventfd2

epoll_create1

__NR_epoll_create

epoll_create

__NR_epoll_create1

epoll_create1

__NR_epoll_ctl

epoll_ctl

__NR_epoll_wait

epoll_wait

__NR_epoll_pwait

epoll_pwait

__NR_inotify_init

inotify_init

__NR_inotify_init1

inotify_init1

__NR_inotify_add_watch

inotify_add_watch

__NR_inotify_rm_watch

inotify_rm_watch

__NR_pipe2

pipe2

__NR_recvmmsg

recvmmsg

__NR_sendmmsg

sendmmsg

__NR_utimensat

utimensat

__NR_preadv

preadv

__NR_pwritev

pwritev

__NR_dup3

dup3

 

 

 

 

 

 

 

 

                    

 

 

 

 

 

 

 

 

 

 

 

 

 






基本可以从系统调用中看出其对应的库函数来。

 

关于系统调用的一些资料可以参考

http://blog.csdn.net/absurd/article/details/1656944

http://blog.csdn.net/b02042236/article/details/6136598

这里就不复制了。

 

关于inotify 文件系统变化通知可以参考以下内容:

http://www.ibm.com/developerworks/cn/linux/l-inotifynew/

 

linux-inotify.c文件主要实现借助inotify来对fs事件进行管理。它使用了红黑树来管理同一个loop的watch descriptor,快速高效的实现对watch descriptor存取工作。整体实现流程函数比较清晰明了的。

 

本人享有博客文章的版权,转载请标明出处http://blog.csdn.net/baidu20008

你可能感兴趣的:(libuv,源码解析,linux-syscalls,linux-inotify)