自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

志存高远

专注于C/C++

  • 博客(10)
  • 资源 (6)
  • 收藏
  • 关注

原创 Linux网络编程--IO模型基础

IO的方式有阻塞IO、非阻塞IO模型、IO复用、信号驱动、异步IO等,本文以UDP为例大概介绍这几种IO模型的基础知识和原理。 1.阻塞IO 阻塞IO是最通用的IO类型,使用这种模型进行数据接收的时候,在数据没有到之前程序会一直等待。 2.非阻塞IO模型 3.IO复用 4.信号驱动IO模型 5.异步IO模型

2015-09-10 16:33:11 1841

原创 Linux c 源码(nMAsciiHexToBinary:将16进制字符串格式转换为ASCII码形式)

short nMAsciiHexToBinary(unsigned char* vspSourceStr,short          vnSourceStrL,unsigned char* vspDestStr) {if(vnSourceStrL % 2)return -1;for(; vnSourceStrL > 0; vnSourceStrL -= 2

2015-09-22 15:39:46 3678

翻译 刘备坚持攻打东吴,并非要为关羽报仇

刘备坚持攻打东吴,并非要为关羽报仇  根据《三国演义》的描述和大多数人的印象里,刘备倾蜀汉全国之力攻打东吴,是为了给死于东吴之手的义弟关羽报仇。我却认为,刘备之所以出兵攻吴,并不单纯是为了给云长报仇,他还有更深层次的意义。  为什么说刘备伐吴不是为关羽报仇呢?  首先,我们看,关羽败走麦城,被东吴所害是公元219年冬,而刘备大举伐吴则是在时隔近两年之后,曹操病逝,曹丕称帝,刘备也称帝后

2015-09-17 16:15:01 3265

原创 NSdata 与 NSString,Byte数组,UIImage 的相互转换

NSdata 与 NSString,Byte数组,UIImage 的相互转换1. NSData 与 NSStringNSData-> NSStringNSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSDataNSString *aString =

2015-09-17 12:51:27 887

原创 Linux c 源码(issockettype:套接字描述符判定函数)

int issockettype(int fd){ struct stat st; int err = fstat(fd, &st);//获得文件的状态 if( err < 0 ) { return -1; } if((st.st_mode & S_IFMT) == S_IFSOCK) { //利用系统宏,比较

2015-09-11 11:34:00 963

原创 Linux网络编程--非阻塞编程

非阻塞方式程序设计介绍非阻塞方式的操作与阻塞方式的操作最大的不同点是函数的调用立刻返回,不管数据是否成功读取或者成功写入。使用fcntl()将套接字文件描述符按照如下的代码进行设置后,可以进行非阻塞的编程: fcntl(s, F_SETFL, O_NONBLOCK); 其中的s是套接字文件描述符,使用F_SETFL命令将套接字s设置为非阻塞方式后,再进行读写操作就可以马上返回了。非阻塞程序设计的

2015-09-11 11:24:48 2624 1

原创 Linux网络编程--poll()和ppoll()函数

poll()函数 ppoll()函数

2015-09-11 10:48:16 9176

原创 Linux网络编程--select()和pselect()函数

函数select()和pselect()用于IO复用,它们监视多个文件描述符的集合,判断是否有符合条件的时间发生。 1.select()函数 函数select()与之前的recv()和send()直接操作文件描述符不同。使用select()函数可以先对需要操作的文件描述符进行查询,查看是否目标文件描述符可以进行读、写或者错误操作,然后当文件描述符满足操作的条件的时候才进行真正的IO操作。 se

2015-09-10 17:14:44 12318 2

原创 Linux网络编程--信号阻塞与屏蔽(block,unblock)

Linux下当向一个进程发出信号时,从信号产生到进程接收该信号并执行相应操作的过程称为信号的等待过程(呃,根据对APUE的理解翻译的)。如果某一个信号没有被进程屏蔽,则我们可以在程序中阻塞进程对该信号所相应的操作。例如一个程序当接收到SIGUSR1信号时会进行一个操作,我们可以利用系统API阻塞(block)程序对该信号的操作,直到我们解除阻止。再举个现实的例子:就好像一个同学让我帮他带饭,但是我现

2015-09-10 15:02:10 3603

原创 Linux c 源码(readn:从fd中读取n字节数据)

/* Read "n" bytes from a descriptor. */readn(int fd, void *vptr, size_t n){ size_t nleft; ssize_t nread; char *ptr; ptr = vptr; nleft = n; while (nleft > 0) { if (

2015-09-08 11:15:30 2480

vim配置文件vimrc

高大上的vimrc配置文件,包含自动补全代码功能哦

2016-01-11

sqlapi 源码

此文件夹中包含几个个文件,除了官方的g++程序和文档说明,还包含自己写的demo案例,以及封装的数据库函数,transAction和fetch和sqlapi的cpp文件,以及SQLAPI.h文件 1.transAction.cpp文件主要是关于事务的提交和处理的设置,自动提交or手动提交 2.fetch.cpp文件主要是关于api的基本操作,包括连接数据库,sql语句的执行,绑定sql语句参数的方法,获取结果的方法,以及结果中字段的处理,断开连接,以及异常的处理。 3.sqlapi.cpp文件主要测试数据库优化的性能,主要用于查询的速度的提升 4.SQLAPI.H文件是所有的功能函数的声明。

2016-01-11

cuit单元测试

CUnit是一种C语言单元测试框架 ,继Junit CppUnit的成功后, c语言环境下也出现了开发源码的白盒测试用例CUnit。CUnit以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以了。它提供了一个简单的单元测试框架,并且为常用的数据类型提供了丰富的断言语句支持。

2015-10-19

最新VMware 11安装Mac系统补丁unlocker203.zip

最新VMware 11安装Mac系统补丁unlocker203.zip

2015-08-12

小牛在线收益快捷计算

自已也是小牛在线的投资者,闲暇时写了一个计算收益的小软件,为小牛爱好者提供方便。

2015-08-03

struct和union计算方法

规则: 1,对于union,对齐的大小是最大的基本元素的对齐大小;对象的大小必须是该基本元素大小的整数倍; 2,对于struct,对齐的大小也是最大的基本元素的对齐大小,对象的大小需要考虑元素的对齐,并且需要是最大基本元素的整数倍;同时有#pragma pack修饰的情况,关于struct请详细参考另外一个帖子。 3,这里所说的struct和union的对齐,是指其作为其他复杂对象中的元素的时候要求的对齐,对于本身大小的计算并没有关系。本身的大小只和其所包含的基本元素的对齐有关系。

2015-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除