摘要:写在前面1. 本文内容对应《UNIX环境高级编程》(第2版)》第3章。2. 主要总结了UNIX系统下描述文件的三种数据结构,以及文件共享的相关概念。3. 希望本文对您有所帮助,也欢迎您给我提意见和建议。文件数据结构表示文件的数据结构有三个:l v节点结构,包含a)文件类型b)对此文件进行各种操作的函数的指针c)文件的i节点(索引节点)。i节点包含文件的所有者,文件长度,文件所在的设备,指向文件实际数据块在磁盘上所在位置的指针等等。Linux没有使用v节点,而是使用了通用i节点结构。l 文件表项,内核为所有打开文件维持一张文件表,每个文件表项包含a)文件状态标志(读,写,添加,同步和非阻塞等)b 阅读全文
APUE学习笔记(3)-时间概念
2009-10-27 11:09 by htc开发, 136 阅读, 0 推荐, 收藏, 编辑
摘要:写在前面1. 本文内容对应《UNIX环境高级编程》(第2版)》第1、6、8章。2. 总结了UNIX系统下的两种时间概念。3. 希望本文对您有所帮助,也欢迎您给我提意见和建议。UNIX系统一直使用两种不同的时间概念:日历时间和进程时间。日历时间保存日历时间的数据类型有三种:l time_t:记录自国际标准时间公元1970年1月1日00:00:00以来经历的秒数。通过time函数返回。文件属性中的最后访问时间,最后修改时间和最后文件属性更改时间,都使用该类型记录。#include <time.h>time_t time(time_t *calptr);l timeval:通过getti 阅读全文
APUE学习笔记(1)-errno变量
2009-10-27 11:08 by htc开发, 230 阅读, 0 推荐, 收藏, 编辑
摘要:写在前面1. 本文内容对应《UNIX环境高级编程》(第2版)》第1章。2. 主要介绍errno变量的使用,包括如何打印出错消息,以及多线程下的errno变量。3. 希望本文对您有所帮助,也欢迎您给我提意见和建议。errno变量当函数出错时,常常返回一个负值(-1),而且整型变量errno通常被设置为含有附加信息的一个值。例如,open函数如果成功执行则返回一个非负的文件描述符,如果出错则返回-1。在open出错时,有大约15种不同的errno值(如文件不存在,权限问题等)。变量errno定义在文件<errno.h>中。在linux下,可以赋予它的各种常量在<asm-gener 阅读全文
APUE学习笔记(1)-限制查询
2009-10-27 11:05 by htc开发, 165 阅读, 0 推荐, 收藏, 编辑
摘要:写在前面1. 学习linux环境下的编程,《UNIX环境高级编程》(行话叫APUE)应该是必读的一本书。毫无疑问,APUE可以作为API的参考手册。但是,个人认为书中的许多概念和思想仍然需要细细揣摩。细节的积累,一来是良好模式设计的基础,二来为学习内核知识提供了上层视角。读书笔记的目的正在于此,而linux开放、自由的思想始终是一种原动力。2. APUE.2e及其源码可以从这里下载。源码在linux下的编译需要做几处修改,可以参考《在Linux下编译APUE的例子》。我使用的系统是Ubuntu 9.04(linux-2.6.29.3,gcc-4.3.3)。3. 关于Makefile和GDB的使 阅读全文
IPC消息队列使用详细分析
2009-10-26 20:35 by htc开发, 265 阅读, 0 推荐, 收藏, 编辑
摘要:虽然说是进程间通信中有关消息队列的一个比较详细的分析 同样的,共享内存,信号量和消息队列的公共部分知识也都同理 首先:使用XSI IPC需要首先了解标识符和键的概念 标识符是标识IPC对象的一个量,通常由一个int型变量表示,不过标识符只是IPC对象的内部名,如果要使的多个进程能够使用同一个IPC,需要得到一个外部名,这个外部名就是键--KEY,每个IPC对象都与一个键相关联 对于消息队列:可以通过函数magget通过一个键获得他的标识符,即通过外部标识得到内部标识的一个方法 例如:我们知道一个消息队列的键是msg_key; 那么:可以通过下列代码段 int msg_id; nsg_id=m. 阅读全文
sinal函数原型的分析
2009-10-19 15:46 by htc开发, 196 阅读, 0 推荐, 收藏, 编辑
摘要:void (*signal (int signo, void (*func)(int))) (int);乍一看,还以为定义了一个函数指针signal,但如果真是这样,signal后的参数列表又怎么解释?先来看看一些基础知识:1,定义函数指针:return_type (*func_pointer)(parameter_list)2,定义返回函数指针的函数:return_type(*function(func_parameter_list))(parameter_list)定义了一个函数function,该函数的参数列表是(function_patameter_list),返回类型是一个函数指针, 阅读全文
项目管理课程札记(2009.10.17)
2009-10-19 15:39 by htc开发, 150 阅读, 0 推荐, 收藏, 编辑
摘要:项目管理课程札记(2009.10.17)由于公司的项目很紧,需要长期出差在外,开学以来一直没上过课。上个周六,终于见到张艳红老师了,高贵,典雅,而又不失时尚,风华绝代,仿佛集现代美与古典美于一身。这是张老师给我的第一印象。当时已经是午后了,张老师刚上完上午的课,还没来得及吃饭,却仍然耐心的听着学生和他探讨管理问题。看到学生成长,能独当一面了,张老师总是露出欣慰的笑容,仿佛看着自己的孩子一样。我不禁为之一震。张老师上课的第一句话就是,一个月没“折磨”我们了,接下来要开始“折磨”我们了。的确,在温室成长的花草,是经不起外面暴风骤雨的。我们需要认清的是,现实社会的残酷和不可预知性。而我们一定要考虑到 阅读全文
激光打印机的原理、碳粉分类
2009-10-16 19:49 by htc开发, 1237 阅读, 0 推荐, 收藏, 编辑
摘要:第一篇激光打印机工作原理 激光打印原理:以HP(反转显影方式)为例,激光头以激光束方式将应该成像的照射在OPC上(OPC本身绝缘,表面已经充上负电,打印机给其内部一个正电背压),使OPC该上粉的位置电阻降低,表面负电荷消失,形成所谓的静电潜像。这样,墨粉本身带负电,与OPC内部正电异性相吸,转移到OPC上(当然,这里不仅仅是这一个力,还有磁力、偏压力、分子力等等。而不该有粉的地方,因为OPC表面仍然是带有负电荷,同性相斥)。 打印机内部有一个转印辊,带有更强大的正电荷,把OPC上的墨粉抢(转移)到纸(或其他介质)上,纸(或其他介质)在经过打印机的定影系统时,通过上面加热,下面加压的方式热融.. 阅读全文
C/C+语言struct深层探索 (转)
2009-10-16 17:38 by htc开发, 197 阅读, 0 推荐, 收藏, 编辑
摘要:C/C+语言struct深层探索 作者:宋宝华 出处:PConline 1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用 struct是区别一个开发人员是否具备丰富开发经历的标志。 在网络协议、通信控制、嵌入式系统的C/C++编程中,我们经常要传送的不是简单的字节流(char型数组),而是多种数据组合起来的一个整... 阅读全文
Source Insight完美转换UTF-8 到 GB2312
2009-10-14 16:38 by htc开发, 701 阅读, 0 推荐, 收藏, 编辑
摘要:Source Insight完美转换UTF-8 到 GB2312文/蒹葭前言很多人用source insight 打开某些源码文件时,汉字显示为一堆乱码。这个问题是因为编码方式不同。记事本和一些编辑器默认编码方式是ANSI,在这种方式下输入汉字,其实就是GB系列的编码方式。不幸的是,广收欢迎的代码查看工具Source insight 虽然支持汉字,但是它不支持UTF-8。笔者感到疑惑的是,当初开发source insight的这帮人现在哪里去了?为何不继续开发?这么好的工具,却不再更新了,实在让人可惜。可惜归可惜,程序还是要看。乱码怎么办?很多人用笨方法,用记事本打开源代码,再另存为ANSI格 阅读全文