非阻塞IO是相对于传统的阻塞IO而言的。 我们首先需要搞清楚,什么是阻塞IO。APUE指出,系统调用分为两类,低速系统调用和其他,其中低速系统调用是可能会使进程永远阻塞的一类系统调用。但是与磁盘IO有关的系统调用是个例外。 我们以read和write为例,read函数读取stdin,如果是阻塞IO,...
分类:
系统相关 时间:
2014-10-23 12:11:41
阅读次数:
259
前段时间看了下APUE关于多线程的部分,讲Linux的多线程是通过clone的系统调用实现的,针对这点进行验证发现并非如此,确切说是版本大于2.6的是这样的。#include #include void prid(const char *name){ pid_t pid; ...
分类:
编程语言 时间:
2014-10-22 19:56:04
阅读次数:
285
Linux系统调用详解(如何从用户空间进入内核空间)...
分类:
系统相关 时间:
2014-10-21 17:52:53
阅读次数:
393
参考:
《Linux内核设计与实现》
0 摘要
linux的系统调用过程:
层次如下:
用户程序------>C库(即API):INT 0x80 ----->system_call------->系统调用服务例程-------->内核程序
先说明一下,我们常说的用户API其实就是系统提供的C库。
系统调用是通过软中断指令 INT 0x80 实现的,而这条INT 0x80指令就被封装在...
分类:
系统相关 时间:
2014-10-21 12:27:49
阅读次数:
331
文件描述符:进程通过文件描述符来操作文件,文件描述符可以通过open, openat, creat系统调用返回;shell和其他应用默认打开标准输入(STDIN_FILENO),标准输出(STDOUT_FILENO),标准错误(STDERR_FILENO)三个文件描述符。open和openat函数:...
分类:
其他好文 时间:
2014-10-20 22:49:24
阅读次数:
279
大多数UNIX应用程序都使用I/O库,本章说明了该库所包含的所有函数,以及某些实现细节和效率方面的考虑。同时需要重点关注标准I/O使用了缓冲的技术,但同时也是因为它的出现,产生了很多细节上的问题.流和FILE对象 unix系统调用的函数都是针对文件描述符操作的.而标准I/O库,它们的操作则是围...
分类:
其他好文 时间:
2014-10-19 18:31:13
阅读次数:
206
// daemon.cpp// 该例子演示结合ASIO和POSIX标准系统的fork系统调用,产生一个守护进程。//时间服务器?// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com)//// Dis...
分类:
系统相关 时间:
2014-10-16 02:11:31
阅读次数:
583
这段时间在看鸟哥的Linux私房菜,记下一些重要的东西,方便以后复习一、操作系统=内核+系统调用1、内核:直接和硬件打交道,负责计算机的资源分配(CPU)与管理(内存)功能:(1)系统调用接口——方便程序员可以与内核通信;(2)程序管理;(3)内存管理;(4)文件系统管理;(5)设备驱动。2、系统调...
分类:
系统相关 时间:
2014-10-15 21:15:51
阅读次数:
299
题目:编写一个守护进程,每隔3秒钟将当前时间输出。要求:不能使用init_daemon系统调用。#include #include #include #include #include int main(void){ pid_t pid; pid = fork(); ...
分类:
系统相关 时间:
2014-10-15 19:27:01
阅读次数:
174
sys_call_table 这个东西,其实和 Windows 下的 SSDT 表,在功能上完全相同。前一阵子学Linux驱动,遇到了这个系统调用表,然后我就想到Windows的SSDT表,既然SSDT表都可以HOOK,系统调用表是不是也可以。然后,就开始HOOK了。首先,SSDT表,是微软自己导出...
分类:
其他好文 时间:
2014-10-14 15:33:18
阅读次数:
173