2014年1月5日
摘要: 原文链接:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316692.html简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strace cat /dev/null execve("/bin/cat", 阅读全文
posted @ 2014-01-05 22:58 运动和行动 阅读(284) 评论(0) 推荐(0) 编辑
摘要: STREAMS流机制基本概念STREAMS(流)是系统V提供的构造内核设备驱动程序和网络协议包的一种通用方法,对STREAMS进行讨论的目的是为了理解系统V的终端接口,I/O多路转接中poll(轮询)函数的使用,以及基于STREAMS的管道和命名管道的实现。流在用户进程和设备驱动程序之间提供了一条全双工通路。流无需和实际硬件设备直接会话,流也可以用来构造伪设备驱动程序。在流首(stream head)之下可以压入处理模块,这可以用ioctl命令实现。STREAMS模块是作为内核的一部分执行的,这类似于设备驱动程序。当构造内核时,STREAMS模块联编进入内核。STREAMS消息STREAMS的 阅读全文
posted @ 2014-01-05 19:54 运动和行动 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 记录锁基本概念若两个人同时编辑一个文件,其后果将如何呢?在很多unix系统中,该文件的最后状态取决于写该文件的最后一个进程。但是对于有些应用程序(例如数据库),进程有时需要确保它正在单独写一个文件。为了向进程提供这种功能,商用unix系统提供了记录锁机制。记录锁的功能是:当一个进程正在读或修改文件的某个部分时,它可以阻止其他进程修改同一文件区。对于unix系统而言,"记录"该词并不恰当,更适合的术语可能是字节范围锁(byte-range locking),因为它锁定的只是文件中的一个区域(当然,也可能是整个文件)。POSIX.1 形式记录锁本文主要介绍POSIX.1的fcn 阅读全文
posted @ 2014-01-05 13:05 运动和行动 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 非阻塞I/O非阻塞I/O使我们可以调用open、read和write这样的I/O操作,并使这些操作不会永远阻塞。如果这种操作不能完成,则调用立即出错返回,表示该操作若继续执行将阻塞。对一个给定的描述符,有两种方法对其指定非阻塞I/O:(1) 如果调用open获得描述符,则可指定O_NONBLOCK标志。(2) 对于已经打开的一个描述符,则可调用fcntl,由该函数打开O_NONBLOCK文件状态标志。示例程序:对一个文件描述符打开一个或多个文件状态标志#include #include void set_fl(int fd, int flags) //flags are file statu. 阅读全文
posted @ 2014-01-05 00:06 运动和行动 阅读(143) 评论(0) 推荐(0) 编辑