自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (1)
  • 收藏
  • 关注

转载 C++ Primer 类 12.4 explicit 构造函数

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”

2016-05-31 21:55:17 307

原创 c++ primer 类 const

写个小程序来学习在类中有关const的用法。1.const_stdy.h#ifndef _CONST_STDY_H_#define _CONST_STDY_H_#include using namespace std;class Account{public: Account(string name = "xiaomi" , double rat = 0); //const

2016-05-31 20:51:55 221

转载 C++ Primer 类 12.6 static

在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。静态成员的定义或声明要加个关键static。静态成员可以通过双冒号来使用即::。 在C++中类的静态成员变量和静态成员函数是个容易出错的地方,本文先通过几个例子来总结静

2016-05-31 16:20:45 337

原创 C++ Primer 类 12.3-12.5 作用域,construtor,friend

12.3 类作用域1.在定义于类外部的成员函数中,形参表和成员函数体都出现在成员名之后。这些都是在类作用域中定义,所以可以不用限定而引用其他成员。例如,类 Screen中 get 的二形参版本的定义:     char Screen::get(index r, index c) const     {         index row = r * width;      // c

2016-05-31 10:03:48 423

转载 C++ Primer 类 12.4 默认构造函数

默认构造函数默认的构造函数是指为所有参数都提供了默认值的构造函数,通常是指无参的构造函数。比如下面的类Test,它的默认构造函数就是Test()。class Test{public: Test(){} // default constructor} ;如果你没有为你的类提供任何构造函数,那么编译器将自动为你生成一个默认的无参构造函数。一旦你为你的类定义了构造函数,

2016-05-30 21:39:20 272

原创 C++ Primer 类 12.1-12.2 this ,定义

12.1 类的定义和声明    类由类成员组成。类成员包括属性,字段,成员函数,构造函数,析构函数等组成。     类设计应该遵从抽象封装性。    类抽象性指对于类的使用者来说只需知道类接口即可使用类功能。类的具体实现由设计者负责。即使某个功能发生了变更但由于使用者是以接口方式调用类所以用户代码无需做任何修改。    类封装性指类用户只需知道类的功能无需了

2016-05-30 14:59:04 297

转载 const常量与define宏定义的区别

#define RADIUS 100;const  float   RADIUS = 100;(1) 编译器处理方式不同  define宏是在预处理阶段展开。  const常量是编译运行阶段使用。(2) 类型和安全检查不同  define宏没有类型,不做任何类型检查,仅仅是展开。  const常量有具体的类型,在编译阶段会执行

2016-05-26 16:17:51 301

转载 HTTP状态码详解

HTTP状态码的含义,适合长期收藏。状态代码状态信息含义100Continue初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新)101Switching Protocols服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新)200OK

2016-05-26 15:15:40 321

转载 Ubuntu 用vsftpd 配置FTP服务器

本文在Ubuntu Server 14.04 amd64系统测试。转自:http://www.cnblogs.com/CSGrandeur/p/3754126.html 以及阅读:http://blog.csdn.net/dongtingzhizi/article/details/12028627安装ftpsudo apt-get install vsftpd

2016-05-26 10:34:55 337

转载 DNS原理及其解析过程剖析

网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“202.96.134.133”之类的IP地址,而不能认识域名。我们无法记住10个以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。

2016-05-25 16:06:09 300

转载 wireshark抓包图解 TCP三次握手/四次挥手详解

一. TCP/IP协议族      TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:1. 链路层,也称作数据链路层或者网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。2. 网络层,也称作互联网层,处理分组在网络中的活动,例如分组

2016-05-25 09:03:41 713

转载 Linux进程间通信——使用信号量

转自:http://blog.csdn.net/ljianhui/article/details/10243617这篇文章将讲述别一种进程间通信的机制——信号量。注意请不要把它与之前所说的信号混淆起来,信号与信号量是不同的两种事物。有关信号的更多内容,可以阅读我的另一篇文章:Linux进程间通信——使用信号。下面就进入信号量的讲解。一、什么是信号量为了防止出现因

2016-05-21 19:03:17 492

转载 【IPC通信】命名管道FIFO

前面学习过(匿名)管道(见前面博客),匿名管道只能用于有亲缘关系的各个进程之间,为了解决这个限制,UNIX系统进而引入了FIFO,也称为有名管道(named pipe)。FIFO(first in, first out),是一个半双工数据流,也即一个半双工管道。不同于匿名管道的是,每个FIFO有一个路径名(或文件名)与之关联,也即FIFO的名字。有了名字,无亲缘关系的进程间就可以通过管道进

2016-05-20 19:56:50 337

转载 进程间通信之消息队列

消息队列是消息的链接表,存放在内核中并由消息队列标识符标识。在本节中,我们把消息队列简称为队列(queue),其标识符为队列ID(queue ID)。msgget用于创建一个新队列或打开一个现存的队列。msgsnd将新消息添加到队列尾端。每个消息包含一个正长整型类型字段,一个非负长度以及实际数据字节(对应于长度),所有这些都在将消息添加到队列时,传送给msgsnd。msgrcv用于从队列中

2016-05-20 17:29:39 296

原创 XSI IPC之消息队列实例

学习apue消息队列, 想搞明白几个函数用法, 就写了一个小程序让自己感受一下IPC发送端:#include #include #include #include /* 发送端:测试IPC之消息队列有关函数 */#define BUFSIZE 1024struct my_msg{ long my_type; //msg type ch

2016-05-20 17:19:40 479

转载 进程间通信之XSI IPC

XSI IPC源自于系统V的IPC功能。有三种IPC我们称作XSI IPC,即消息队列、信号量以及共享存储器,它们之间有很多相似之处。1、标识符和键每个内核中的IPC结构(消息队列、信号量或共享存储段)都用一个非负整数的标识符(identifier)加以引用。例如,为了对一个消息队列发送或取消息,只需要知道其队列标识符。与文件描述符不同,IPC标识符不是小的整数。当一个IP

2016-05-19 10:37:16 513

原创 未完成的作业

1.查询atoi等函数,并且实现

2016-05-19 10:06:45 286

转载 进程间通信之FIFO

FIFO有时被称为命名管道。管道只能由相关进程使用,这些相关进程的共同祖先进程创建了管道。但是,通过FIFO,不相关的进程也能交换数据。FIFO是一种文件类型(参考http://www.cnblogs.com/nufangrensheng/p/3501533.html)。stat结构(http://www.cnblogs.com/nufangrensheng/p/3501385.html)

2016-05-18 21:38:19 513

转载 IO多路复用之select总结

1、基本概念  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用

2016-05-17 16:57:40 383

转载 我的 Vim 配置

我的 Vim 配置成型已经有不少时间了,过去也是看着 依云 等人的配置综合而成的,再加上有人黑我一年不写blog,一写果然就是 Arch 挂,因此决定多分享一些 super user 系列的内容。我的 vim 所有配置文件,均放在 GitHub 上,但它很可能不适合别人,因此这篇文档主要讲我的配置文件组织方式、各个插件的用途等等,方便读者组织自己的配置文件。废话少说,先上王道。

2016-05-16 20:53:52 1470

转载 Ubuntu 安装Chrome步骤

一、添加PPA从Google Linux Repository(http://www.google.com/linuxrepositories/)下载安装Key,或把下面的代码复制进终端,回车,需要管理员密码wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add

2016-05-16 20:47:01 409

原创 linux socket 客户端和服务器端 基础框架代码

客户端:#include #include #include #include /* socket客户端 */#define SERVER_PORT 8888int main( int argc , char *argv[] ){ int client_fd; struct sockaddr_in client_addr; int addrlen; //ini

2016-05-13 14:46:34 809

原创 高级IO-fcntl记录锁

首先学习文章:http://www.cnblogs.com/nufangrensheng/p/3554168.html 和http://blog.csdn.net/anonymalias/article/details/9197641然后写代码验证#include #include /* 测试记录锁相关的操作 */int main(int argc , char *ar

2016-05-12 22:20:50 363

原创 线程控制-sigwait函数和相关函数解释

首先看这篇文章学习线程和信号:http://www.cnblogs.com/clover-toeic/p/4126594.html然后我写了一个小程序#include #include #include /* 测试与线程有关的信号函数 */sigset_t new_mask , old_mask;void *thread_func( void *arg );in

2016-05-12 09:06:47 1534

转载 软件开发工具GCC

重点掌握以下知识点:  了解gcc编译器的下载和安装方法,包括嵌入式交叉编译平台搭建的方法  重点掌握gcc的基本编译流程和编译方法  重点掌握gcc编译的高级操作及选项  了解gcc编译器性能分析工具,包括gprof和gcov gcc下载地址:ftp://ftp.gnu.org/gnu/gcc/ 安装过程中遇到的问题:  #

2016-05-11 21:39:07 544

原创 ps stat

PROCESS STATE CODESHere are the different values that the s, stat and state output specifiers(header "STAT" or "S") will display to describe the state of a process.D    Uninterruptible sleep (us

2016-05-10 21:04:51 237

转载 linux 时间函数解释

从系统时钟获取时间方式time_t time(time_t* timer)得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数。clock_t clock(void)得到从程序启动到此次函数调用时累计的毫秒数。函数名称: localtime函数原型: struct tm *localtime(const time_

2016-05-10 11:02:43 688

原创 线程同步-生产者消费者问题

在进行多线程编程时,难免还要碰到两个问题,那就线程间的互斥与同步:线程同步是指线程之间所具有的一种制约关系,一个线程的执行依赖另一个线程的消息,当它没有得到另一个线程的消息时应等待,直到消息到达时才被唤醒。线程互斥是指对于共享的进程系统资源,在各单个线程访问时的排它性。当有若干个线程都要使用某一共享资源时,任何时刻最多只允许一个线程去使用,其它要使用该资源的线程必须等待,直到占用资源者释放

2016-05-09 21:26:53 16790 1

转载 线程之线程同步

前言当多个控制线程共享相同的内存时,需要确保每个线程看到一致的数据视图。如果每个线程使用的变量都是其他线程不会读取或修改的,那么就不会存在一致性问题。同样地,如果变量是只读的,多个线程同时读取该变量也不会有一致性问题。但是,当某个线程可以修改变量,而其他线程也可以读取或修改这个变量的时候,就需要对这些线程进行同步,以确保它们在访问变量的存储内容时不会访问到无效的数值。当一个线程修改

2016-05-09 21:25:33 1633

转载 线程之线程终止

如果进程中的任一线程调用了exit、_Exit或者_exit,那么整个进程就会终止。与此类似,如果信号的默认动作是终止进程,那么,把该信号发送到线程会终止整个进程。单个线程可以通过下列三种方式退出,在不终止整个进程的情况下停止它的控制流。(1)线程只是从启动例程中返回,返回值是线程的退出码。(2)线程可以被同一进程中的其他线程取消。(3)线程调用pthread_ex

2016-05-09 18:26:22 560

转载 线程之线程取消(pthread_cancel)

基本概念pthread_cancel调用并不等待线程终止,它只提出请求。线程在取消请求(pthread_cancel)发出后会继续运行,直到到达某个取消点(CancellationPoint)。取消点是线程检查是否被取消并按照请求进行动作的一个位置.与线程取消相关的pthread函数int pthread_cancel(pthread_t thread)发送终止信号给t

2016-05-09 16:08:27 1071

转载 Linux文件系统特殊权限:chattr lsattr

chattr:设置特殊权限 lsattr:查看特殊权限 chattr  [+-=]  [ASacdistu]  [文件或目录名称] 参数说明: +-=:分别是"+"(增加)、"-"(减少)、"="(设定)属性 A:当设定了属性A,这个文件(或目录)的存取时间atime(access)将不可被修改,可避免诸如手提电脑容易产生磁盘I/O错误的情况; S:这个功能有点类似sync

2016-05-09 15:40:38 1214 1

原创 关于google一些网址

https://www.google.de/https://cse.google.com/cse

2016-05-09 15:28:41 517

转载 游戏开发学习指导

转自:http://www.zhihujingxuan.com/18625.html本人大约从20多年前开始学习及使用C++,但仍未达到我认为「精通」的阶段,甚至对于C++11的各种新特性也未掌握。然而因为我是在读书时自学C++的,也是游戏程序员(原问题中提到题主想从事游戏开发),觉得也许能提供一点意见供网友参考。首先引一下2010年8月号《程序员》刊登的拙文《C++强大背后》最后

2016-05-09 14:40:31 3443 1

原创 游戏引擎起步杂谈

那要看你基础有多深厚,如果一点基础都没有,又想要开发rpg这些大东西的,建议你先玩一玩rpgmaker,很多人说rpgmaker太小儿科,但是玩rpgmaker看到的不是开发技术而是开发方法,也许这些开发方法很落后看起来很低端。但是当你玩过知道那么点东西之后,日后你用unity想做一个游戏才不会至于啥都不知道,游戏里面一堆对象怎么管理,一堆数据往哪儿放,怎么安排level才方便调节,游戏内容比如剧

2016-05-09 14:36:04 477

转载 线程之线程的创建

在传统的UNIX进程模型中,每个进程只有一个控制线程。从概念上讲,这与基于线程的模型中只包含一个线程是相同的。在POSIX线程(pthread)的情况下,程序开始运行时,它也是以单进程中的单个控制线程启动的,在创建多个控制线程以前,程序的行为与传统的进程并没有什么区别。新增的线程可以通过调用pthread_create函数创建。#include int pthread_create(pt

2016-05-08 20:57:26 472

转载 sigsuspend()函数 解释

1)头文件:#include 2)一个保护临界区代码的错误实例:(sigprocmask()和pause()实现)#include #include #include  void handler(int sig)    //信号处理函数的实现{   printf("SIGINT sig");}int main(){    sigset_t new,o

2016-05-08 16:37:59 13438 1

原创 sigprocmask函数总结

首先看它的作用:一个进程的信号屏蔽字规定了当前阻塞而给该进程的信号集。调用函数sigprocmask可以检测或更改其信号屏蔽字,或者在一个步骤中同时执行这两个操作。#include int sigprocmask( int how, const sigset_t *restrict set, sigset_t *restrict oset );返回值:若成功则返回0,若出错

2016-05-07 16:29:33 21085 10

转载 Linux/Unix inode、vnode、dentry、file、进程表、文件表(下)

1、struct inode──字符设备驱动相关的重要结构介绍内核中用inode结构表示具体的文件,而用file结构表示打开的文件描述符。Linux2.6.27内核中,inode结构体具体定义如下:struct inode {struct hlist_node    i_hash;struct list_head    i_list;struct list_head    

2016-05-07 14:54:41 608

转载 Linux/Unix inode、vnode、dentry、file、进程表、文件表(中)

般我们讲,都说进程有文件描述符表,文件描述符表中的指针指向某个inode,这中间省略了file,dentry对象,对准确理解VFS结构无益,本文结合网络所查,并根据APUE8.3和LKD13.11章节校对,总结在下,希望有用。   内核中,对应于每个进程都有一个文件描述符表,表示这个进程打开的所有文件。文件描述表中每一项都是一个指针,指向一个用于描述打开的文件的数据块———file对象,f

2016-05-07 14:49:03 1954

ArcGIS API for JavaScript 4.X本地部署资源包

 ArcGIS API for JavaScript开发的首要步骤就是引入ArcGIS想关的样式文件及开发包,对于此样式文件及开发包的引用有两种形式:在线引用和离线加载。对于一般的示例程序编写,我们只需简单的引入在线的开发包即可,但是在自己开发过程中可能会有引入离线开发包的需求,该资源即为本地部署API文件

2019-02-20

空空如也

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

TA关注的人

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