- 博客(54)
- 资源 (3)
- 收藏
- 关注
原创 套接口选项
套接口选项本文出自:http://sunsland.top263.net 作者: (2001-10-23 09:00:00)获取和设置影响套接口选项的函数:getsockopt :获取套接口选项 setsockopt: 获取套接口选项 fcntl: 设置套接口为非阻塞I/O型信号驱动I/O型等 oictl 套接口选项 SO-KEEPALIV
2008-09-17 09:29:00 707
原创 socket编程:SO_REUSEADDR例解
socket编程:SO_REUSEADDR例解 kevintz 2000-6-19 网友vmstat多次提出了这个问题:SO_REUSEADDR有什么用处和怎么使用。而且很多网友在编写网络程序时也会遇到这个问题。所以特意写了这么一篇文章,希望能够解答一些人的疑难。 其实这个问题在Richard
2008-09-17 09:25:00 587
原创 OS-9
OS-9是Microware系统开发的实时操作系统,专门用于嵌入式应用程序。OS-9采用模块化体系结构,可以方便的改变配置并升级。OS-9可以支持一系列应用程序,应用范围包括网络、网页浏览、图形处理、视频会议以及多媒体领域。 OS-9的重要特性是支持电源管理、输入/输出管理、灵活的输入/输出架构、支持标准以及自定义网络协议、内置多媒体支持、加载了用于嵌入式应用程序的Java解决方案,同时
2008-09-16 10:02:00 1120
原创 几个重要的Linux系统内核文件介绍
在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls –l。编译过RedHat Linux内核的人对其中的System.map 、vml
2008-09-16 09:56:00 769
原创 如何编写Linux设备驱动程序 (转)
Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。本人这几周来为实验室自行研制的一块多媒体卡编制了驱动程序,获得了一些经验,愿与L
2008-09-16 09:33:00 542
原创 ioctl
函数名: ioctl 功 能: 控制I/O设备 用 法: int ioctl(int handle, int cmd,[int *argdx, int argcx]); include/asm/ioctl.h中定义的宏的注释:#define _IOC_NRBITS 8 //序数(number)字段的字位宽度,8bits
2008-09-12 15:37:00 5060
原创 gcc中格式化输出函数的研究
函数具体介绍1printf()函数 printf()函数是格式化输出函数系列中比较有具有普遍特点的, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("", ); #include #include int main() { char c, s[20], *p; int a=1234, *i
2008-09-12 14:19:00 618
原创 msgsnd/msgrcv
消息队列允许长度可变、数目可变的消息排队。任何任务或中断服务程序可以发送消息到消息队列。任何任务可从消息队列接收消息。关于此消息队列的一些常用函数如下: int msgget(key_t key, int msgflg)int msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)ssize_t msgrcv (int msqi
2008-09-11 16:04:00 6173 2
原创 select()系统调用和文件描述符集fd_set 转
在网络程序中,一个进程同时处理多个文件描述符是很常见的情况。select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好时,select()阻塞,其中任一设备准备好时,select()就返回。select()的调用形式为:#include #include int select(int maxfd, f
2008-09-11 10:12:00 807
原创 sockaddr_in/
sockaddr_in(在netinet/in.h中定义):struct sockaddr_in {short int sin_family; /* Address family */unsigned short int sin_port; /* Port number */struct in_addr sin_addr;
2008-09-11 08:44:00 934
原创 Linux常用C函数-接口处理篇 zhuan
accept(接受socket连线) 相关函数 socket,bind,listen,connect表头文件 #include#include定义函数 int accept(int s,struct sockaddr * addr,int * addrlen);函数说明 accept()用来接受参数s的socket连线。参数s的socket必需先经bind()、listen()函数处理过
2008-09-10 15:53:00 647
原创 C语言中可变参数的用法
我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:int printf( const char* format, ...);它除了有一个参数format固定以外,后面跟的参数的个数和类型是可变的,例如我们可以有以下不同的调用方法:printf("%d",i);printf("%s",s);printf("the number is %d ,str
2008-09-10 14:01:00 412
原创 msgget、tm结构
msgget()系统调用msgget() 如果希望创建一个新的消息队列,或者希望存取一个已经存在的消息队列,你可以使用系统调用msgget()。 系统调用:msgget(); 原型:intmsgget(key_t key,int msgflg); 返回值:如果成功,返回消息队列标识符 如果失败,则返回-1:errno=EACCESS(权限不允许) EEXIST(队列已经存在
2008-09-10 10:49:00 1959 1
原创 信号量和临界区
学习目标:学习信号量及其属性进行同步实验研究临界区的行为使用POSIX命名信号量和无名信号量理解信号量的管理1. 临界区临界区是指必须以互斥的方式执行的代码段,也就是说临界区范围内只能由一个活动的线程。例如:修改共享变量的过程中其他的执行线程可能会访问共享变量,那么修改共享变量的代码就被看成是临界区的一部分。临界区问题指用安全、公平和对称的方式来执行临界区代
2008-09-10 09:51:00 1214
原创 获得Mac的地址
#include stdio.h>#include string.h>#include sys/ioctl.h>#include sys/socket.h>#include netinet/in.h>#include net/if.h>int main(int argc, char *argv[]){ int i; /**//* get mac */ struct ifr
2008-09-10 09:00:00 621
原创 ioctl ---IO通道管理函数
in_addr是存储ip地址的结构体 struct in_addr{ u_int32_t s_addr; }; ifreq是跟网络接口有关的结构 /* * interface request structure used for socket * ioctls. al
2008-09-10 08:46:00 921
原创 同步异步
同步和异步的区别 举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 同步就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。 异步就是你叫我,然后自己去吃饭,我得到消息后可
2008-09-09 20:16:00 476
原创 信号量
信号量 信号量本质上是一个非负的整数计数器,它被用来控制对公共资源的访问。当公共资源增加时,调用函数sem_post()增加信号量。只有当信号量值大于0时,才能使用公共资源,使用后,函数sem_wait()减少信号量。函数sem_trywait()和函数pthread_ mutex_trylock()起同样的作用,它是函数sem_wait()的非阻塞版本。下面我们逐个介绍和信号量有关的一些函数,
2008-09-09 17:24:00 1217
原创 金日工作
今日正式开工,1、SIP协议重新复习 struct ifreq { char ifr_name[IFNAMSIZ]; /* interface name, e.g., "le0 " */ union { struct sockaddr ifru_addr;
2008-09-09 13:56:00 430
原创 那靠窗的是你吗
那一定是你吧,如果真是,我会为这次公交车上的相遇后悔一辈子,如果不是,我会为我们的分离后悔。今天是头一天去软件园那边上班,不巧下午坐119路回学校,靠窗的那像极了你,可你却总是侧着头,是在故意躲避吗,我却更错觉的那就是你,我看了好长时间,你一直侧着头,没有给我一个确定的机会,可你的眼里像是含着泪水,是在想什么吗? 你不该在那辆车上出现的,也不该在这做城市里出现,你属于另外的一个地方,
2008-09-08 20:20:00 573
原创 宏:整数常量 O_ACCMODE
原文:Macro: int O_ACCMODE This macro stands for a mask that can be bitwise-ANDed with the file status flag value to produce a value representing the file access mode. The mode will be O_RDONLY, O_
2008-08-21 16:23:00 3665
转载 右左法则 转
C指针声明解读之左右法则2008-06-03 08:46 C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文
2008-08-01 23:50:00 852
原创 请不要放弃自己
夜夜通宵达旦回回睡生梦死下火的天流走了黄金的日子浮躁的心看透了自己请不要放弃自己风火过后仍是平静以往找回上发条的日子继续自己的塑造自己的形状自己造唯有坚持不放弃
2008-07-30 11:17:00 425
原创 祥云圣火照泉城
“奥运圣火从山东省体育广场出发后,向东沿至经十路,随后经山东省体育局、建设中的济南市全民健身广场、泉城公园、山东电视台、山东大学、千佛山、大众报业集团、燕山立交桥、即将竣工的济南市奥体中心等后,由舜华路向北抵达传递的终点——齐鲁软件园,总里程13.5公里。在13.5公里的传递途中,沿线共有大型喷绘16幅、6200多平方米,升空气球6组共计
2008-07-23 12:04:00 782
原创 C Primer Plus 第五版
int num; //单词num是一个标识符,变量、函数、或其他实体所选的名字,这个声明把一个特殊的标识符和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。C99标准允许一个标识符最多可以有63个字符。可使用的字符有大小写字母和下划线。操作系统和C库通常使用以一个或两个下划线开始的名字。而且名字区分大小写的。 C语言关键字列表:auto break ca
2008-07-21 01:02:00 1052 1
原创 拿什么来填充我的人生
想了好久想来个好点的开场白,毕竟是写人生的,人生是何其的大,对一个人就是他的全部,可却想不到一个有灵魂有生命的句子来拉开人生的诉说。拿什么来填充我的人生,潜台词我的人生是空白的。有时在我入睡前我会想,想一些事情,在半醒半睡下自己像置身于人行道上,来来往往的人走得是那么的匆忙,我站着,呆呆的站的那儿,看着行人,忽然来往的人消失了,忽然清醒了,躺在床上如何努力也回忆不起自己梦中记住的人的面孔,梦中却是
2008-07-21 00:28:00 510
转载 Linux 汇编语言开发指南
引用: http://www.ibm.com/developerworks/cn/linux/l-assembly/index.html学而习之。。。
2008-07-19 00:05:00 370
原创 暑假到了
假期在时间概念上到了,而实际假期像已早早开始,早到从上研以后,假期意味着有了自由时间,上研亦如此,自制、自律、自醒、自信、自爱、自强显得比自由更为重要!再有自学是种本领与能力。今天图书馆最后一天可以借书,借了本《挪威的森林》,以细细品读,填充自己的心灵;追求的是不仅仅是技术的提高还要修养的提升,文学是改善自己的钥匙。闲时信手拈来,读时感受村上。
2008-07-11 10:42:00 437
原创 Intel 汇编语言程序设计(第五版)--续二
--堆栈操作:运行时栈在系统层上(由硬件直接实现)处理子过程调用。是由CPU直接管理的内存数组,使用两个寄存器:SS和ESP。堆栈指针寄存器ESP指向最后压入到堆栈上的数据。运行时栈在内存中总是向下增长的(由高地址到低地址) 压栈PUSH堆栈指针减4.出栈POP堆栈指针加4. 堆栈指针ESP之下的区域从逻辑上讲是空白的。 过程内的局部变量在堆栈上创建,过程结束时,这些变量被丢弃。
2008-07-11 10:24:00 661
原创 三天前
世间有完全一样的人吗?如果没有,异或是有近似的人吗,那天却完全撼动了我的心,竟如此的相像,那个眼神,那个转动眼球的动作,那低头思考的状态,那手捋根根发丝的姿态,如此同出一辙,在我心中是如此可以以假乱真,我还是没有忘了她,初中的她,既然不能淡忘,索性狠狠的去想,可反映出的景象又如此的空洞,回忆多了,片段就会被一次一次的压缩,这是多么的在人内心深处划痕,疼的隐约叫人无从查觉,可我不想忘记,可我又找不到
2008-07-10 00:01:00 436
转载 唐骏:10亿身价的智慧与悲哀
今天在网易上闲逛,读到一篇《唐骏:10亿身价的智慧与悲哀》。觉得不错,把重点内容摘抄如下,同大家一起学习分享。 1、唐骏觉得,性格是职业经理人获得成功的核心因素。他甚至提出了一个成功4+1的理论——1代表性格,其他4个分别代表:勤奋、激情、机遇和智慧。只要性格好,搭配另外4个里的随便哪个都能成功。他对于好性格的标准又颇高:好的性格就是不挑剔别人的任何性格。 2、陈天桥一开始说要跟我分工,我
2008-07-06 17:01:00 562
原创 Intel 汇编语言程序设计(第五版)--续一
学习进行中--和数据相关的操作符和伪指令: (1)OFFSET操作符返回数据标号的偏移地址。偏移代表标号距数据段开始的距离。单位字节。 (2)ALIGN伪指令将变量的位置按字节、字、双字或段边界对齐,ALIGN 边界值(1、2、4、16)如:bval BYTE ? ;00404000ALIGN 2wval WORD ? ;00404002CPU处
2008-07-06 15:24:00 809
原创 Intel 汇编语言程序设计 (第五版)
记录关键词,留给自己复习的钥匙3.5.3EQU伪指令当定义任何非整数的值得时候,非常有用。PI EQU name EQU expressionname EQU symbolname EQU 3.5.4TEXTEQU伪指令可用来创建文本宏name TEXTEQU name TEXTEQU textmacroname TEXTEQU %constExprEQ
2008-07-03 11:06:00 2180
转载 一个程序员应该具备的基础知识和概念
1、计算机是有什么组成的,CPU是什么东西,其工作原理是什么。(对于这些以及下面将要提到的概念我不会告诉你什么答案,你可以看相应的教材,关于教材我会在下一部分详述,记住理解最重要!) 2、机器语言和微指令集的概念。 3、程序的概念。 4、汇编语言是低级语言但不是机器语言。 5、高级语言主要有那些?(C,C++,Basic,Pascal,Fortran,C#,Java等等;如果你是中
2008-06-29 21:47:00 744
原创 一个C程序5个段(pieces)组成
一个C程序一直以来都是由以下5个段(pieces)组成:代码段(text segment):存放CPU执行的机器指令(machine instructions)。通常情况下,代码段是可共享的,使其可共享的目的是对于频繁被执行的程序,只需要在内存中有一份拷贝即可,比如文本编辑器(text editors),C编译器,shell等等。另外,代码段也通常是只读的,使其只读的原因是防止一个程序意外
2008-06-29 16:23:00 754
转载 UNIX/LINUX 平台可执行文件格式分析--转载
UNIX/LINUX 平台可执行文件格式分析作者:施聪 2005-01-13 17:24:31 来自:IBM DW中国本文讨论了 UNIX/LINUX 平台下三种主要的可执行文件格式:a.out(assembler and editor output 汇编器和链接编辑器的输出)、COFF(Common Object File Format 通用对象文件格式)、ELF(Executable
2008-06-29 16:05:00 608
原创 C/C++ 面试题
1、链表与数组的区别A 从逻辑结构来看A-1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。A-2. 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、 删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)B 从内存存储来看B-1. (静态)数组
2008-06-28 20:39:00 450
原创 C语言实战(三)
1、清屏函数clrscr是TC特有的,其它的C语言环境没有这个函数,也就没有头文件包含这个函数。 建议使用 system("cls");来取代clrscr();比较通用,兼容性好一点。 system()函数在#include 里面。 /*printf("| The program will show : |");printf("/r"); 回车*/2、在VC中c
2008-06-28 08:41:00 1358 2
原创 又是一年毕业时
今年又似去年惆,一年仍似一年月,不同所在离别人,来年离愁又遇我。校园里无处不在的在说今年又要毕业了,风采奕奕的少年,结伙派对的述心情;梳妆打扮的少女,留影在母亲的花边;尊严知识的毕业服,点缀着我们的象牙塔……就这样毕业,就这样离去,我的心回到了过往,亲爱的同学们,你们过得还好吗?从毕业前就想到了我们这一别,不是永别却是相见无期,也许在五年十年三十以后,甚至再也见不到亲爱的同学,但我会记得我们相处,
2008-06-27 13:14:00 587
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人