UNIX 环境编程
chenlilong84
这个作者很懒,什么都没留下…
展开
-
《UNIX环境高级编程》学习笔记之标准I/O库
第五章 标准I/O库1. Unix系统标准I/O库是在系统调用函数基础上构造的。2. 流和FILE对象:♥ 流的概念:ANSI C对程序移进或移出字符的操作进行了抽象,将字节流成为“流”,当程序打开或写入一个文件时,此时就已经使得流与文件进行了结合。(1) 流的类型主要有:文本流,二进制流.(2) 一个进程已经预定了三个流,即标准输入,标准输出和标准出错。在原创 2011-08-09 11:08:11 · 725 阅读 · 0 评论 -
linux 日志机制syslogd总结
1. BSD syslogd的组成结构:从上图可以看到相关的日志文件主要来源于三种途径:(1) 内核:许多内核例程调用log函数产生log消息,另外klogd守护进程能够监听并得到内核消息,并发送给syslogd进程。(2) 许多用户进程直接调用syslog函数产生日志消息。(3) 来自于TCP/IP网络连接的日志消息。该消息可能来自于自身的某个用原创 2012-02-02 18:17:40 · 2446 阅读 · 0 评论 -
linux内核与用户之间的通信方式——虚拟文件系统、ioctl以及netlink
本文尝试去阐述内核与用户空间之间的通信接口:虚拟文件系统、ioctl以及netlink.文中所有的结构及代码全来自于Linux kernel 2.6.34.一、虚拟文件系统 proc文件系统,通常是挂载在/proc,允许内核以文件类型形式向用户提供内部信息,但是值得注意的是里面的文件目录不能被写入,即用户不能添加或者删除目录中的任何目录。同时,内核也提供了一个可供用户配置原创 2012-11-28 16:35:36 · 9772 阅读 · 0 评论 -
Liunx下Qos功能实现简析
根据OSI参考模型来分,Qos可以应用在如下两层:即上层协议(主要是应用层)与链路层以及物理层网卡发出数据处。前者是通过TC工具对上层协议数据实施Qos,原理就是首先在应用层对要处理的包或者流打上mark,然后利用TC工具多不同的流量实施不同的功能处理,如流量整形,优先级设置,调度与过滤等等,值得说明的是TC工具实质是一套中间件,功能最后均由内核去负责实现;至于后者的Qos,就是在网卡驱动处设置Q原创 2013-03-29 17:13:54 · 5878 阅读 · 0 评论 -
Linux下随机数生成的常见方法
众所周知,利用Linux下的rand函数可以生成范围在0到RAND_MAX(在stdlib.h中定义,值为2147483647)的数值,但是一般来讲,为了达到更好的随机效果,需要利用srand函数设置相应的随机种子(或者说随机数的起始值),种子相同,所产生的随机数也是相同的,因此,要想获得随机效果好的随机数,一定要保证每次的随机种子有差别。常见的可作为随机种子的有:当前时间、/dev/random原创 2013-10-15 11:46:25 · 10942 阅读 · 0 评论 -
TCP常见失败模式
对比IP协议,TCP协议是一种可靠的协议,它的可靠性最主要体现在对各种复杂错误的修正与处理。当数据报从一端通过网络发往另一端的过程中,时时刻刻都会遇到数据报被损坏、数据报重复、乱序等常见问题, 现在我们以一个基于WAN传输的系统为例,在应用程序之间进行通信的过程中可能遇到以下常见的中断:暂时或者永久的网络紊乱、对等方应用程序出现崩溃(进程挂掉)以及对等方应用程序运行的主机出现崩原创 2013-11-04 09:44:48 · 2531 阅读 · 0 评论 -
Linux文件锁
翻阅参考资料,你会发现文件锁可以进行很多的分类,最常见的主要有读锁与写锁,前者也叫共享锁,后者也叫排斥锁,值得注意的是,多个读锁之间是不会相互干扰的,多个进程可以在同一时刻对同一个文件加读锁;但是,如果已经有一个进程对该文件加了写锁,那么其他进程则不能对该文件加读锁或者写锁,直到这个进程将写锁释放,因此可以总结为:对于同一个文件而言,它可以同时拥有多个读者,但是在某一时刻,他只能拥有一个写者。原创 2013-12-05 19:55:06 · 11823 阅读 · 1 评论