摘要: 进程间通信的一种方式是使用UNIX套接字,人们在使用这种方式时往往用的不是网络套接字,而是一种称为本地套接字的方式。这样做可以避免为黑客留下后门。创建使用套接字函数socket创建,不过传递的参数与网络套接字不同。域参数应该是PF_LOCAL或者PF_UNIX,而不能用PF_INET之类。本地套接字的通讯类型应该是SOCK_STREAM或SOCK_DGRAM,协议为默认协议。例如:int sockfd;sockfd = socket(PF_LOCAL, SOCK_STREAM, 0);绑定创建了套接字后,还必须进行绑定才能使用。不同于网络套接字的绑定,本地套接字的绑定的是struct sock 阅读全文
posted @ 2011-04-24 20:23 hnrainll 阅读(3154) 评论(0) 推荐(0) 编辑
摘要: 在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */在linux环境下,结构体struct sockaddr_in在/usr/include/netinet/in.h中定义,具体如下:/* Structure 阅读全文
posted @ 2011-04-24 20:22 hnrainll 阅读(48486) 评论(0) 推荐(2) 编辑
摘要: struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字节协议地址。此数据结构用做bind、connect、recvfrom、sendto等函数的参数,指明地址信息。但一般编程中并不直接针对此数据结构操作,而是使用另一个与sockaddr等价的数据结构sockaddr_in(在net 阅读全文
posted @ 2011-04-24 20:21 hnrainll 阅读(9833) 评论(0) 推荐(0) 编辑
摘要: 生产者线程用于往链表里添加节点,数个工作线程从链表取出节点并处理。对于一般的mutex_lock,mutex_unlock方式,如果这一段时间没有工作,那么工作线程将会不停的调用lock,unlock操作。而这样的操作毫无疑义。在这里系统给我们提供了另外一种同步机制,信号灯,Semaphore。信号灯其实就是一个计数器,也是一个整数。每一次调用wait操作将会使semaphore值减一,而如果semaphore值已经为0,则wait操作将会阻塞。每一次调用post操作将会使semaphore值加一。将这些操作用到上面的问题中。工作线程每一次调用wait操作,如果此时链表中没有节点,则工作线程将 阅读全文
posted @ 2011-04-24 19:51 hnrainll 阅读(12575) 评论(0) 推荐(0) 编辑
摘要: 内核同步:主要是防止多核处理器同时访问修改某段代码,或者在对设备驱动程序进行临界区保护。主要有一下几种方式:1. Mutex(互斥)头文件:#include <linux/mutex.h>初始化方法:DEFINE_MUTEX(name);或者void mutex_init(struct mutex *lock);使用方法:void mutex_lock (struct mutex *lock);Tries to lock the mutex, sleeps otherwise.Caution: can't be interrupted, resulting in proce 阅读全文
posted @ 2011-04-24 19:49 hnrainll 阅读(1616) 评论(0) 推荐(0) 编辑
摘要: 利用c.vim插件,你可以实现添加文件头 添加注释 插入一些代码片段 语法检查 读函数文档 注释代码块这一插件的作者是Fritz Mehner,目标就是打造程序员流畅的编辑环境。这一插件还能完成:Statement oriented editing of C / C++ programs Speed up writing new code considerably. Write code and comments with a professional appearance from the beginning. Use code snippets 接下来我们对这一插件详细介绍.3 安装插件S 阅读全文
posted @ 2011-04-24 19:37 hnrainll 阅读(1940) 评论(0) 推荐(0) 编辑
摘要: 作为程序员,要取得非凡成就需要记住的15件事。1.走一条不一样的路在有利于自己的市场中竞争,如果你满足于“泯然众人矣”,那恐怕就得跟那些低工资国家的程序员们同场竞技了。2.了解自己的公司以我在医院、咨询公司、物流企业以及大技术公司工作的经验来看,这一点所言不虚。不同公司的运营模式差异极大。如果你理解企业的运营模式,那你就不一样了!在这家公司中(或者对客户而言),你是参与业务运营的资产,你的工作能直接产生效益!3.与最优秀的人为伍很早以前,我喜欢打篮球,被分配到一个水平比较高的队里。一开始适应的确很困难,但环境的压力越大(重大比赛),我的长进也就越明显。每个领域其实都一样:你周围人的水平(以及对 阅读全文
posted @ 2011-04-24 19:32 hnrainll 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/minico/archive/2007/12/15/1938050.aspx1.官方网站下载最新的gvim7.1 win32,然后选择完全安装;我是安装在d:\vim目录下面,安装后的目录结构如下:D:\VIM├─vim71│ ├─autoload│ ├─colors│ ├─compiler│ ├─doc│ ├─ftplugin│ ├─indent│ ├─keymap│ ├─lang│ ├─macros│ ├─plugin│ ├─spell│ ├─syntax│ ├─tools│ └─tutor└─vimfiles├─after├─autoloa 阅读全文
posted @ 2011-04-24 00:33 hnrainll 阅读(588) 评论(0) 推荐(0) 编辑