摘要: Linux 信号量的API都定义在sys/sem.h头文件中,主要包含3个系统调用:semget、semop、semctl。 附上代码: 阅读全文
posted @ 2016-11-26 22:51 hgrical_小农 阅读(1216) 评论(0) 推荐(0) 编辑
摘要: //服务端代码: #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <assert.h> #include <unistd.h> #include <string.h> #include <arpa/inet.h> 阅读全文
posted @ 2016-11-13 22:38 hgrical_小农 阅读(2269) 评论(0) 推荐(0) 编辑
摘要: 1、下载安装源码包libevent-2.0.21-stable.tar.gz 2、解压并安装 tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.1.4-alpha ./configure -prefix=/usr/libeventmake -- 阅读全文
posted @ 2016-11-13 21:18 hgrical_小农 阅读(700) 评论(0) 推荐(0) 编辑
摘要: 在内建数据类型的情况下,效率没有区别。 在自定义数据类型(主要是指类)的情况下,++i效率高;因为前缀式(++i)可以返回对象的引用,而后缀式(i++)必须返回对象 的值,所以导致在大对象的时候产生了较大的复制开销,引起效率降低。建议在使用自定义类型(注意不是指内建类型)的时候,应该尽可能地使用前缀 阅读全文
posted @ 2016-10-19 20:52 hgrical_小农 阅读(368) 评论(1) 推荐(0) 编辑
摘要: 1、指针函数:是指函数的返回值类型是一个指针类型,本质是一个函数,如 int *function(void);这里可以认为是int* function(void);返回值是int*,是一个指针。 2、函数指针:本质是一个指针,但是这个指针指向一个函数,这个指针就叫函数指针,如int (*functi 阅读全文
posted @ 2016-10-19 20:19 hgrical_小农 阅读(166) 评论(0) 推荐(0) 编辑
摘要: (1)当fork子进程时,必须捕获SIGCHLD信号; Signal(SIGCHLD, sig_chld); /* must call waitpid() */ (2)当捕获信号时,必须处理被中断的系统调用; struct sigaction act, oact; act.sa_handler = 阅读全文
posted @ 2016-08-28 22:22 hgrical_小农 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 将低序字节存储在内存的起始地址,这称为小端字节序。 将高序字节存储在内存的起始地址,这称为大端字节序。 检查大小端字节序的简单代码如下: intmain(int argc, char **argv){ union { short s; char c[sizeof(short)]; } un; un. 阅读全文
posted @ 2016-08-28 00:14 hgrical_小农 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 网络编程中常用到bind函数,需要绑定IP地址,这时可以设置INADDR_ANY INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”。 也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思 阅读全文
posted @ 2016-08-21 22:41 hgrical_小农 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 线程函数遇到错误时并不设置标准Unix的errno变量,而是把errno的值作为函数返回值返回调用者。 阅读全文
posted @ 2016-08-21 22:09 hgrical_小农 阅读(547) 评论(0) 推荐(0) 编辑