unix awk手册读书笔记】的更多相关文章

http://note.youdao.com/noteshare?id=9ac76eb63a53ac000f7814454642d2b0…
会集中这段时间写UNIX网络编程这本书的读书笔记,准备读三本,这一系类的文章会不断更新,一直会持续一个月多,每篇的前半部分是书中讲述的内容,每篇文章的后半部分是自己的心得体会,文章中的红色内容是很重要的部分. http://blog.csdn.net/yusiguyuan/article/details/11760187 UNIX网络编程---简介…
I/O模型 UNIX下可用的5种I/O模型: (1)阻塞I/O (2)非阻塞I/O (3)I/O复用(select和poll) (4)信号驱动I/O(SIGIO) (5)异步I/O 对于一个套接口上的输入操作,第一步通常涉及等待数据从网络中到达.当所等待分组到达时,它被拷贝到内核中的某个缓冲区.第二步就是把数据从内核缓冲区拷贝到应用进程缓冲区. 1.阻塞I/O模型 最流行的I/O模型是阻塞I/O(blocking I/O)模型.缺省情况下,所有套接口都是阻塞的. 以数据报套接口作为例子,我们有下…
辅助数据(ancillary data)可通过调用sendmsg和recvmsg这两个函数,使用msghdr结构中的msg_control和msg_controllen这两个成员发送和接收. 辅助数据的另一个称谓是控制信息(control information). 辅助数据由一个或多个辅助数据对象(ancillary data object)构成,每个对象以一个定义在头文件<sys/socket.h>中的cmsghdr结构开头. struct cmsghdr { socketlen_t cm…
概述 UNIX域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法,所用API与在不同主机上执行客户/服务器通信所用的API(套接口API)相同.UNIX域协议可视为进程间通信(IPC)方法之一. UNIX域提供两类套接口:字节流套接口(类似TCP)和数据报套接口(类似UDP). 使用UNIX域套接口的理由有3个: 在源自Berkeley的实现中,UNIX域套接口往往比通信两端位于同一主机的TCP套接口快出一倍. UNIX域套接口可用于在同一个主机上的不同进程间传递描述字…
select函数概况: select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它. 作为一个例子,我们可以调用select,告知内核仅在下列情况发生时才返回: (1)集合{1,4,5}中的任何描述字准备好读,或 (2)集合{2,7}中的任何描述字准备好写,或 (3)集合{1,4}中的任何描述字有异常条件待处理,或 (4)已经历了10.2秒. 也就是说,我们调用select告知内核对哪些描述字(就读.写或异常条件)感兴趣以及等待多长时间…
编写一个完整的TCP客户和服务器程序所需要的基本套接口函数: 1.socket函数(客户端.服务器端都必须调用) 参数family指明协议族(family),该参数也往往被称为协议域(domain).所以有的书上声明如下: 而且对于socket函数第一个参数,在不同书籍上可能会看到不同前缀的取值常量列表,如下两图所示: AF_xxx与PF_xxx: AF_前缀表地址族,PF_前缀表示协议族.历史上曾有这样的想法:单个协议族可以支持多个地址族,PF_值用来创建套接口,而AF_值用于套接口地址结构.…
端口号 端口号(port number):16位整数,用来区分不同的进程. 服务器使用的端口号:TCP和UDP定义了一组众所周知的端口(well-known port),用于标识众所周知的服务. 客户端使用的端口号:通常使用短期存活的临时端口(ephemeral port).这些端口号通常由传输层协议自动赋予客户.客户一般不关心其临时端口的具体值,而只需确信它在所在主机中是唯一的就行.传输层协议的代码确保这种唯一性. 端口号被划分成三段: (1)众所周知的端口为0-1023. 这些端口由IANA…
认知套接口编程接口 理解原始套接口(raw socket)的概念   值得注意的是,客户和服务器是典型的用户进程,而TCP和IP协议则通常是系统内核协议栈的一部分. 上图中在TCP和UDP之间留有间隙,用于指出应用程序可以绕过传输层而直接使用IPv4和IPv6,这称为原始套接口(raw socket). UNIX网络编程中所说的套接口编程接口是应用层到传输层的接口.UNIX网络编程的焦点是:如何使用套接口编写使用TCP或UDP的网络应用程序.…
1 shell程序就是位于应用软件与系统调用之间的程序   每个用户登录系统,系统就会为用户分配shell (用户的登录的口令文件 在  /etc/passwd 2 ls filename  运行原理   敲入命令传入main函数参数   根据argv[1]创建一个指向DIR的目录文件指针,并根据argv[1]创建目录    在从该目录文件读取文件,返回一个指向struct_dirent类型的指针    从而输出文件的名称 代码如下 #include <stdio.h> #include &l…