摘要:
Git的.gitignore配置 在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改根目录中 .gitignore 文件的方法(如无,则需自己手工建立此文件)。这个文件每一行保存了一个匹配的规则例如: *.a 忽略所有 .a 结尾的文件 !lib.a 但 lib.a 除外 /T 阅读全文
摘要:
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法, 冒泡排序、插入排序、归并排序和基数排序是稳定的排序算法。 排序算法不稳定的含义是:在排序之前,有两个数相等. 但是在排序结束之后,它们两个有可能改变顺序.比如说: 在一个待排序队列中,A和B相等,且A排在B的前面,而排序之后,A排在了B的后面 阅读全文
摘要:
当删除一个STL容器(比如map, vector)中的某个元素时, 会引起迭代器失效, 所以, 我们务必提高警惕。 题目: 删除map<int, int>中value为5的倍数的元素。 该题看起来很自然很简单, 实则有迭代器失效的陷阱。 如果对迭代器失效问题一无所知, 则很容易写出如下的错误代码: 阅读全文
摘要:
结构体,公用体,枚举类型的sizeof 1)枚举类enum型空间计算 enum只是定义了一个常量集合,里面没有“元素”,而枚举类型是当做int来存储的,所以枚举类型的sizeof值都为4 1 enum color(red,pink,white,black)c; 2 void main() 3 { 4 阅读全文
摘要:
“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket。 网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket 阅读全文
摘要:
空间适配器,所谓空间适配器,就是用来管理内存的一个器具。对于STL来说,空间适配器是它可以正常工作的基础,也为它可以高效工作提供了动力。对于使用STL来说,它是不和用户直接打交道的,而是隐藏在一切STL组件之后,默默为各种内存申请提供支持的。对于c++用户来说,new和delete很熟悉,这两个函数 阅读全文
摘要:
线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/ 阅读全文
摘要:
在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程;而在 Linux 平台,我们可以通过 ./ 运行,让一个可执行程序成为一个进程。 但是,如果我们本来就运行着一个程序(进程),我们如何在这个进程内部启动一个外部程序,由内核将这个外部程序读入内存,使其执行起来成 阅读全文
摘要:
在linux中,如果对一个目录具有写权限,那么我们就可以在这个目录下创建删除文件。 现在我们要创建这样一个目录,我们可以在这个目录里创建文件,但是其他用户不能删除这个文件。 在这里就要用到一个特殊的权限:粘着位 在linux中有三种特殊权限,分别为: SetUID = 4:在所有者设置的权限 Set 阅读全文
摘要:
从图中可以看出,_exit 函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核的各种数据结构;exit 函数则在这些基础上做了一些小动作,在执行退出之前还加了若干道工序。exit() 函数与 _exit() 函数的最大区别在于exit()函数在调用exit 系统调用前要检查文件的 阅读全文