己所不欲,勿施于人。

2016-08-27
Shell快捷键

快捷键组合 操作效果
Ctrl + a 切换到命令行开始
Ctrl + e 切换到命令行末尾
Ctrl + l 清除屏幕内容,同 Clear。
Ctrl + u 剪切清除光标之前的内容
Ctrl + k 剪切清除光标之后的内容
Ctrl + y 粘贴所剪切的内容
Ctrl + r 在历史命令中查找
Ctrl + c 终止命令
Ctrl + d 退出 shell,logout
Ctrl + z 转入后台进行,直到用户退出终止。&不会终止
!! 重复执行最后一条命令
history 显示历史命令,执行某条历史命令
Ctrl + p 显示上一条命令
Ctrl + n 显示下一条命令
!$ 显示系统最近的一条参数
阅读此文

2016-08-25
RTTI理解

RTTI(Run-Time Type Identification 运行时类型识别)允许用指向基类的指针或引用来操纵对象的程序能够获取到这些指针或引用所指对象的实际派生。

阅读此文

2016-07-20
三角函数常用公式集锦

欢迎来到三角函数世界

阅读此文

2016-07-01
SDL 安全开发生命周期

一、关于SDL

安全开发生命周期Security Development Lifecycle

早期版本中对于不安全的函数会给出警告提示,通常在函数后加上_s表示该函数的安全版本。

忽略安全检查:

  • 方法一:使用安全版本的函数_s,如scanf_sstrncopy_s等。
  • 方法二:_CRT_SECURE_NO_WARNINGS。源码顶端添加#define _CRT_SECURE_NO_WARNINGS
    项目属性 -> 配置属性 -> c/c++ -> 预处理器 -> 预处理器定义 -> _CRT_SECURE_NO_WARNINGS
  • 方法三:关闭SDL检查(VS2015)
    项目属性 -> 配置属性 -> C/C++ -> SDL检查 -> 否
阅读此文

2016-06-30
3D基础

常用公式

开启 3D 之旅

阅读此文

2016-06-23
C++ 访问权限及继承方式

访问权限

c++用三个关键字设置成员的访问权限:publicprivateprotected

  • public:可以被任意实例对象访问;
  • protected:只允许子类及本类的成员函数访问;
  • private:只允许本类的成员函数访问。
阅读此文

2016-06-16
TCP/IP 学习笔记

TCP/IP 参考模型

TCP/IP参考模型是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。ARPANET是由美国国防部DoD(U.S.Department of Defense)赞助的研究网络。逐渐地它通过租用的电话线连结了数百所大学和政府部门。当无线网络和卫星出现以后,现有的协议在和它们相连的时候出现了问题,所以需要一种新的参考体系结构。这个体系结构在它的两个主要协议出现以后,被称为TCP/IP参考模型(TCP/IP reference model)。
由于国防部担心他们一些重要的主机、路由器和互联网关可能会突然崩溃,所以网络必须实现的另一目标是网络不受子网硬件损失的影响,已经建立的会话不会被取消,而且整个体系结构必须相当灵活。

阅读此文

2016-06-06
信号及其处理

Linux 信号

基本概念

软中断信号(signal,简称为信号)用来通知进程发生了异步事件。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。
注意:信号只是用来通知某进程发生了某事件,并不给进程传递任何数据。

收到信号的进程对各种信号有不同处理方法:

  • 第一种方法,类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,由该函数处理;
  • 第二种方法,忽略某个信号,对该信号不做任何处理,就像未发生过一样;
  • 第三种方法,对该信号的处理保留系统默认值,对大部分信号的缺省操作是使进程终止。
阅读此文

2016-05-24
字符编码

字符编码相关常识

字符编码简介

1. ASCII

ASSII(American Standard Code for Information Interchange),是一种单字节编码。单字节可以表示 256 个不同的字符,可以表示所有的英文字符和许多控制符号。ASCII只用到其中的一半(\x80以下),这是MBCS得以实现的基础。

2. MBCS

MBCS(Multi-Byte Character Set)是一种多字节编码。目前大多使用双字节编码,所以也叫DBCS(Double-Byte Character Byte)。MBCS并不是某一种特定的编码,Windows 中根据设定的区域不同,指代不同的编码。而Linux里无法使用MBCS作为编码。Windows中,微软使用ANSI来代表MBCS,在简体中文Windows默认的区域设定里,指代GBK。
如GBxxx、BIGxxx等,都是多字节字符编码,他们的规则是:如果第一个字节是\x80以下,则仍然表示ASCII字符;如果是\x80以上,则跟下一个字节一起(共两个字节)表示一个字符,然后跳过下一个字节,继续往下判断。
IBM发明了一个叫Code Page的概念,将这些编码都收入囊中并分配页码,GBK是第936页,也就是CP936。所以,也可以使用CP936表示GBK。

3. Unicode

UCS(Unicode Character Set)还仅仅是字符对应码位的一张表而已,比如这个字的码位是6C49。字符具体如何传输和储存则是由UTF(UCS Transformation Format)来负责。
Unicode标准UCS-2使用两个字节表示一个字符,UCS-4标准,使用4个字节表示一个字符。
最初,使用UCS的码位来保存,这就是UTF-16,比如,直接使用\x6C\x49保存(UTF-16-BE),或是倒过来使用\x49\x6C保存(UTF-16-LE)。但英文字母只需要一个字节就能保存,变成了两个字节,空间消耗大了一倍,于是UTF-8横空出世。
BOM(Byte Order Mark),文件编码方式。

阅读此文

2016-05-12
Python 学习笔记

Python 是一门简单易学且功能强大的编程语言:
拥有高效的高级数据结构;能够用简单而又高效的方式进行面向对象编程。
Python 优雅的语法和动态类型,再结合它的解释性,使其在大多数平台的许多领域成为编写脚本或开发应用程序的理想语言。

阅读此文