- 博客(14)
- 收藏
- 关注
转载 linux消息队列应用编程
消息队列: 消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法 每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值 消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMNI) 对比管道和...
2016-11-29 00:22:00
207
转载 linux共享内存简单介绍以及编码演示
共享内存的基本概念 共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。 下图是共享内存示意图: 下图是用管道或者消息队列传递数据示意图: 内核为每个IPC对象维护一个数据结构下图是用共享内存传递数据示意图:System V共...
2016-11-28 17:12:00
209
转载 linux信号的介绍
1.基本概念 中断: 中断是系统对于异步事件的响应 中断信号 中断源 现场信息 中断处理程序 中断向量表 异步事件的响应:进程执行代码的过程中可以随时被打断,然后去执行异常处理程序 生活中的中断和计算机系统中的中断 ...
2016-11-28 15:26:00
143
转载 关于makefile的那些事儿
最近越来越感觉到,在linux下面身为一个程序员,不会makefile就不是一个合格的程序员,所以今天我们介绍下常用的makefile编写.了解知识: 编译:把高级语言书写的代码转换为机器可识别的机器指令。编译高级语言后生成的指令虽然可被机器识别,但是还不能被执行。编译时,编译器检查高级语言的语法、函数与变量的声明是否正确。只有所有的语法正确、相关变量定义正确编译器就可以编译出中间目标...
2016-11-28 11:12:00
181
转载 关于动态库的制作介绍
今天简单的介绍下动态的制作,主要介绍windows平台下借助vs进行动态库制作和使用,以及linux下动态库的制作和使用,闲话少说下面开始吧 在windows环境下进行制作1.首先打开vs2013,新建一个win32控制台项目第二步,新建选择动态库(dll)选项,生成空项目第三步:将提供的源码文件添...
2016-11-28 00:27:00
128
转载 JSON的简单介绍以及C语言的JSON库使用
JSON概述 JSON: JavaScript 对象表示法( JavaScript Object Notation) 。是一种轻量级的数据交换格式。 它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式, 但是也使用了类似于C语言家族的习惯( 包括C、 C++、 C#、 Java、 JavaScript、 Perl、 Python等) 。这些特性使JSON...
2016-11-22 00:00:00
935
转载 xml简单介绍及libmxml编程
今天我们来简单介绍一下,关于xml的一些内容,包括自己编写一些程序进行生成和解析。首先我们我们还是从xml的演化历史来了解一下它吧。历史演化 GML: 在20世纪60年代为了促进数据交换和操作,通过IBM公司研究人员的杰出工作,得出了重要的结论:要提高系统的移植性,必须采用一种通用的文档格式,这种文档的格式必须遵守特定的规则。这也就是创建通用标记语言(外...
2016-11-21 23:00:00
277
转载 libevent库介绍--事件和数据缓冲
首先在学习libevent库的使用前,我们还要从基本的了解开始,已经熟悉了epoll以及reactor,然后从event_base学习,依次学习事件event、数据缓冲Bufferevent和数据封装evBuffer等,再结合具体的几个实例来了解libevent库的一些基本使用,有助于我们理解它的一些内部实现(由于之前我已经写过一篇epoll反应堆模型的,所以这里就不再介绍,直接从eve...
2016-11-13 21:31:00
217
转载 组播的介绍以及CS模型实现
1.组播介绍 组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。 永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。 那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。 224.0.0.0~224.0.0.255 为预留的组播地址(永...
2016-11-10 14:29:00
141
转载 广播机制的CS模型实现
广播机制的cs模型实现如下: 首先可以使用ifconfig命令查看自己所在网段的广播地址server.c 1 #include<stdio.h> 2 #include<unistd.h> 3 #include<stdlib.h> 4 #include <strings.h> 5 #include<...
2016-11-10 13:33:00
136
转载 UDP协议----简单的CS模型实现
UDP简单介绍 传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。 相较于TCP而言,UDP通信的形式更像是发短信。不需要在数据传输之前建立、维护连接。只专心获取数据就好。省去了三次握手的过程,通信速度可以大大提高,但与之伴随的...
2016-11-10 11:55:00
379
转载 linux系统编程----统计一个目录下的普通文件个数
主要是为了统计linux系统下一个指定目录下面的普通文件个数,运用目录操作的一些函数,配合递归调用来实现该功能。首先介绍一下函数原型: 打开一个空目录 DIR *opendir(const char *name); 参数: 目录名 返回值: 指向目录的指针 ...
2016-11-09 00:35:00
331
转载 socket IPC(本地套接字 domain)
1.简介 socket API原本是为网络通讯设计的,但后来在socket的框架上发展出一种IPC机制,就是UNIX Domain Socket。虽然网络socket也可用于同一台主机的进程间通讯(通过loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC更有效率:不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层...
2016-11-09 00:01:00
235
转载 epoll反应堆模型
/* epoll反应堆模型。(libevent库核心实现 epoll) libevent库,C语言实现的,开源的网络编程库。 开源、易用性强,跨平台,精简。 select、poll、epoll、dev/poll kqueue..... windows/Linux/Mac os/*BSD 可读、可写、异常 可写: 管道 fd[0]...
2016-11-06 22:56:00
104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人