自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 C++ 类的空间大小计算基本方法

在类中,如果什么都没有,则类占用1个字节,一旦类中有其他的占用空间成员,则这1个字节就不在计算之内,如一个类只有一个int则占用4字节而不是5字节。 如果只有成员函数,则还是只占用1个字节,因为类函数不占用空间 虚函数因为存在一个虚函数表,需要4个字节,数据成员对象如果为指针则为4字节,注意有字节对齐,如果为13字节,则进位到16字节空间。 sizeof的本质是得到某个类型的大小,确切的来说就

2017-07-27 10:14:36 6538

原创 《UNIX网络编程》wait和waitpid函数

之前的内容里我们用wait来处理已经终止的子进程,waitpid的功能和wait类似,但也有区别。 wait和waitpid的函数模型:pid_t wait(int *statloc);pid_t waitpid(pid_t pid, int *statloc, int options);返回值:若成功则返回进程的ID, 出错则返回0或者-1相同点函数wait和waitpid均返回两个值,已经终

2017-07-26 22:24:41 484

原创 《UNIX网络编程》多线程TCP C/S服务器正常启动和正常结束过程剖析

一、启动过程1、服务器启动后,它调用socket、bind、listen、accept, 并阻塞accept调用(我们还没有启动客户) 2、客户启动并调用socket和connect,后者引起TCP三路握手过程。当三路握手完成后,客户中的connect和服务器中的的accept均返回,连接建立。二、结束过程1、服务器子进程终止,关闭所有打开的描述符,客户打开的套接字由内核关闭。这导致客户TCP发送

2017-07-24 19:50:49 488

转载 HTTP 错误代码总结

HTTP 错误代码总结HTTP 错误代码将从远程服务器返回以响应请求。我们最为熟悉的可能是 HTTP404,只要服务器在 URI 中找不到指定的页面/文档,便会返回该代码。代码消息描述HTTP400错误请求由于语法无效,服务器可能无法处理该请求。HTTP401

2017-07-22 14:30:49 2850

原创 《UNIX网络编程》中的unp.h文件和config.h文件

《UNIX网络编程》一书中大量使用了作者自己编写的包裹函数,这些函数的声明统统写在了 unp.h 头文件中,现在将这个头文件写在博文里,方便以后查看。注意:unp.h 和 config.h的生成, 可以上本书官网 http://www.unpbook.com/下载源代码,根据README中的使用方法生成 ,除了这两个头文件外还需要相关静库文件的支持。笔者系统环境为Ubuntu 17.04 amd64

2017-07-21 10:47:18 3763

原创 《Unix网络编程》 多进程并发服务器基本模型

多进程并发服务器的基本原理是:对于每一个客户的访问请求,都fork一个子进程来处理这个请求。程序轮廓:pid_t pid;int listenfd, connfd;listenfd = Socket(...);Bind(listenfd, LISTENQ);while(1){ connfd = Accept(listenfd, ...); if( (pid = fork

2017-07-18 13:52:30 410

原创 《Unix网络编程》Unix/Linux中exec系函数辨析

Unix/Linux中exec系函数辨析

2017-07-18 12:35:43 259

原创 C++vector容器大小增长规律的总结

问:“vector大小是如何增长的?” 答:“自动增长的” 问:“增长规律是怎么?” 答: 。。。。。。 那么, 今天就来探究一下vector容器的大小增长规律:vector中得到大小的的函数有以下几个 方法 作用 size() 返回容器的大小 empty() 判断容器是否为空 max_size() 返回容器最大的可以存储的元素 capacity()

2017-07-17 16:20:48 4721 3

原创 C++仿函数详解

仿函数,简单来说,使用一个类来实现一个函数,通过运算符重载,使得这个类有函数的对应功能。 举个简单仿函数实现的例子:#include <iostream>#include <algorithm>using namespace std;template<typename T>class testFunctor_dis{ public: void operator()(const

2017-07-16 13:36:41 431

原创 C++中的typeid关键字

typeid是C++中RTTI(Run-TimeType Information, 运行时类型识别)机制的组成部分,其目的是根据传入已有的参数,来判断参数的数据类型。对于基本数据类型的用法与运行结果(g++ 6.3.0):#include <iostream>#include <typeinfo>using namespace std;int main(){ int a = 0;

2017-07-16 11:16:15 341

原创 Django中URL正则表达式匹配

Django框架中的URL分发采用正则表达式匹配来进行,以下是正则表达式的基本规则:1官方演示代码:from django.conf.urls import urlfrom . import viewsurlpatterns = [ url(r'^articles/2003/$', views.special_case_2003), url(r'^articles/([0-9]{4}

2017-07-04 21:13:27 16237

原创 C++11中的左引用和auto类型说明符

左引用:左引用是C++11中的新特性,创建一个“引用型变量”(有点像创建指针) 使用方法示例:int a = 1;int &b = a;这里b引用了a 错误用法示例 :int &a = 1; //引用类型的初始值必须是一个对象int &b; //引用类型必须要初始化auto类型说明符:C++新标准引入了auto类型说明符,用它能让编译器代替我们分析表达式所属的类型。 使用方法示例:

2017-07-02 12:12:19 3069

空空如也

空空如也

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

TA关注的人

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