自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

未来之歌

保持善良,善待他人就是善待自己。

  • 博客(13)
  • 收藏
  • 关注

原创 Linux系统日志 -- syslog函数

应用程序使用syslog函数与rsyslogd守护进程通信。 syslog函数的定义如下:#include <syslog.h>void syslog(int priority, const char* message, ...);该函数采用可变参数(第二个message和第三个…)结构化输出。 priority参数:设施值与日志级别的按位或。设施值的默认值是LOG_USER。 日志级别有如下

2016-03-30 10:33:39 2327

原创 socket关闭连接 -- shutdown系统调用

shutdown函数原型:#include <sys/socket.h>int shutdown(int sockfd, int howto);sockfd参数是待关闭的socket。 howto参数决定了shutdown的行为,具体取如下的值:SHUT_RD: 关闭sockfd上读的这一半。应用程序不能再针对socket文件描述符执行读操作,并且该socket接收缓冲区中的数据都被丢弃。SHUT

2016-03-28 23:29:47 1767 1

原创 监听socket(bind()的backlog参数)

监听socket的创建:#include <sys/socket.h>int listen(int sockfd, int backlog);sockfd参数指定被监听的socket。backlog参数提示内核监听队列的最大长度(backlog + 1)。 listen成功返回0, 失败返回-1,设置errrno。研究backlog参数对listen系统调用实际影响:/*************

2016-03-28 17:43:15 2070

原创 IP地址转换函数

人们习惯用可读性好的字符串来表示IP地址,比如用点分十进制字符串表示IPv4地址,十六进制表示IPv6地址。 下面3个函数用于点分十进制字符串表示的IPv4地址及用网络字节序整数表示的IPv4地址之间的转换:#include <arpa/inet.h>in_addr_t inet_addr(const char* strptr);int inet_aton(const char* cp, str

2016-03-28 15:34:43 1933

原创 判断机器字节序 -- 大端小端判断代码

#include <stdio.h>void byteorder(){ union { short value; char union_bytes[sizeof(short)]; }test; test.value = 0x0102; if((test.union_bytes[0] == 1) && (test.union_b

2016-03-28 12:20:11 818

转载 Linux 7个运行级别(runlevel)

转自:http://www.cnblogs.com/dkblog/archive/2011/08/30/2160191.htmlLinux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别2:多用户状态(没有NFS) 运行级别3:完全的多用户状态(有NFS)

2016-03-26 12:43:26 1268

原创 TCP连接终止前的TIME_WAIT状态

TIME_WAIT状态客户端连接在接收到服务器结束报文段之后,并未直接进入CLOSED状态,而是转移到TIME_WAIT状态。 在这个状态,客户端连接要等待一段长为2 MSL(Maximum Segment Life,报文段最大生存时间)的时间,才能完全关闭。 MSL是TCP报文段在网络中最大生存时间,标准文档RFC 1122的建议值是2min(即2分钟)。为何会有TIME_WAIT?TIME_

2016-03-25 18:48:21 1740

原创 vim配置设置参考

vimrc文件配置,网络转载,来源不明1 vimrc是vim的配置文件,可以修改两个位置:分别是:A:/etc/vim/vimrc 这是默认的系统配置的vimrcB:~/.vimrc :当前用户目录下的 .vimrc 用户目录下的vim配置级别高set encoding=gb2312"set guifont=Luxi/ Mono/ 9 " 设置字体,字体名称和字号set tabst

2016-03-20 10:48:35 548

原创 代码复用 -- 组合和继承

软件复用实际上是代码的重复使用。 C语言中采用:函数 宏 C++中采用:继承 组合 某类以另一个类对象作数据成员,称为组合。在逻辑上,如果类A是类B的一部分(a part of)或者说HAS-A(“有一个”),不要从A类派生出类B,而应当采用组合的方式。 《高质量C++编程指南》中“眼睛、鼻子、嘴巴、耳朵和头部”的范例很好地解释了组合的本质:眼睛、鼻子、嘴巴、耳朵分别是头部的一部分,头部

2016-03-09 14:24:21 687

原创 C++类模板使用详解

来自 Oracle® Solaris Studio 12.4:C++ 用户指南类模板类模板描述了一组相关的类或数据类型,它们只能通过类型来区分:整数值、指向(或引用)具有全局链接的变量的指针、其他的组合。 类模板尤其适用于描述通用但类型安全的数据结构。类模板声明类模板声明仅提供了类的名称和类的模板参数。 此类声明是不完整的类模板。 以下示例是名为 Array 类的模板声明,该类可接受任何类型作

2016-03-04 22:41:14 814

原创 C++模板 -- 模板隐式实例化和显式实例化

隐式模板实例化使用模板函数或模板类时需要实例。 如果这种实例还不存在,则编译器隐式实例化模板参数组合的模板。显式模板实例化编译器仅为实际使用的那些模板参数组合而隐式实例化模板。 该方法不适用于构造提供模板的库。 C++ 提供了显式实例化模板的功能,如以下示例所示。1、 模板函数的显式实例化 要显式实例化模板函数,请在 template 关键字后接函数的声明(不是定义),且函数标识符后接模板参

2016-03-04 20:54:19 1838

原创 cin.ignore()的使用

cin.ignore()的使用cin.ignore(a,ch)方法是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。 每抛弃一个字符,它都要计数和比较字符:如果计数值达到a或者被抛弃的字符是ch,则cin.ignore()函数执行终止;否则,它继续等待。 它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。 比如可以这么用:ci

2016-03-02 22:19:05 7290 3

原创 使用C++封装互斥锁的实践

使用C++封装互斥锁的实践代码如下所示:/***********************/ // 完成互斥锁类的封装C++ // @file mutexLock.cc /***********************/#include <iostream>#include <pthread.h>#include <unistd.h>#include <assert.h>using

2016-03-01 16:09:18 1242

空空如也

空空如也

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

TA关注的人

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