自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tristone的专栏

分享是一种美德,Great People Share Knowledge.

  • 博客(12)
  • 资源 (12)
  • 收藏
  • 关注

原创 从C++单例模式到线程安全

先看一个最简单的教科书式单例模式:class CSingleton{public:CSingleton* getInstance(){if(NULL == ps){ps = new CSingleton;}return ps;}private:CSingleton();static CSingleton* ps;}

2016-07-14 23:00:06 422

原创 socket TCP编程中connect的一些坑

1.服务端listen成功后,系统就自动接收客户端请求了man listen:其中有一段The  behavior of the backlog argument on TCP sockets changed with Linux       2.2.  Now it specifies the  queue  length  for  completely  establishe

2015-01-29 17:56:06 10519 1

原创 关于epoll边缘触发模式(ET)下的EPOLLOUT触发

ET模式下,EPOLLOUT触发条件有:1.缓冲区满-->缓冲区非满;2.同时监听EPOLLOUT和EPOLLIN事件 时,当有IN 事件发生,都会顺带一个OUT事件;3.一个客户端connect过来,accept成功后会触发一次OUT事件。其中2最令人费解,内核代码这块有注释,说是一般有IN 时候都能OUT,就顺带一个,多给了个事件。。以上,当只监听IN事件,

2015-01-13 22:47:24 5063 2

原创 epoll的一些关键点和总结(二)

epoll异步精髓(ET模式):2个epoll初始化片段:epoll_event ev;ev.events = EPOLLIN | EPOLLET;ev.data.fd = fd;int ret = epoll_ctl(_epfd, EPOLL_CTL_ADD, fd, &ev);_pEvents = new epoll_event[EPOLL_SIZE - 1];i

2015-01-12 17:32:52 910

原创 epoll的一些关键点和总结(一)

1.两种工作模式以及ET模式下的数据收发异常:在epoll中有两种模式:level-trigger模式,简称LT模式,和edge-trigger模式,简称ET模式。其中,LT是默认的工作模式。LT(level triggered)是缺省的工作方式,并且同时支持block和no-block socket。在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd

2015-01-09 14:44:58 938 1

原创 关于char*类型返回值和字符串常量

//看这样一段程序:#include char* fun(){ return "fun";}int main(){ printf("%s", fun()); return 0;} 这段程序可以正常run,但是最好不要这么做。因为 直观上你返回了一个局部的东西出去。 你可以再外面定义这个常量,然后返回。

2015-01-08 10:44:46 1632

原创 关于链接失败 对xxxx ‘__gxx_personality_v0’未定义的引用

用惯了gcc编译程序,结果今天重构一个c程序为c++,编译,链接报了个错:/tmp/ccrDo3QI.o:(.eh_frame+0x2af):对‘__gxx_personality_v0’未定义的引用代码里面真看不出来啊,好纠结。。最后发现,是因为C++要用g++而不是gcc编译啊,尼玛。。。

2015-01-07 17:12:56 1348

原创 linux中绑定80端口失败

Ubuntu 14.10 64bitbind 80端口失败,提示:Bind error!: Permission denied起初以为是80已经被占用,lsof -i :80 , 发现没有,结果发现在基于Unix的系统上,绑定小于1024的端口需要root权限。解决方法很简单,以root权限运行程序吧。。当然还有其它办法,如反向代理,端口转发等。。。。

2015-01-05 11:40:44 3636 3

转载 【转】inet_addr、inet_aton、inet_pton异同小结

Linux网络编程IPv4和IPv6的inet_addr、inet_aton、inet_pton等函数小结知识背景:210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英

2015-01-02 20:31:04 1575 1

原创 盛名之下,其实难副?——再读CMU巨著CSAPP

看到文章的标题我相信许多对这本书推崇备至的人都要喷我(本人对其也一直推崇备至的说O(∩_∩)O,然而学而不思则罔,即使是经典巨著,我们也要带着审视的目光去读它,要有敢于怀疑的精神),本文只代表个人观点,欢迎高手指教。    首先说说这本书的定位,个人认为它并不像书中所说的适合

2011-08-11 20:50:21 2294 1

原创 FOJ 1001之位图数据结构对程序的优化

原题:http://acm.fzu.edu.cn/problem.php?pid=1001大意是有个最多100W长度的整数数组,里面只有2个数相同,我们的任务是输入这组数,输出相同的那个数.最容易想到的方法显然是遍历数组的每个数,进行对比,碰到相同的,则输出,这时该算法的时间复杂

2011-07-29 02:50:55 603

原创 浅谈C文件编译过程

话说总结下C文件编译过程.首先假设有这么一段经典C程序:#include //包含标准输入输出头文件,stdio即standard input&outputint main(void) //主函数,程序入口点{printf("Hello,world!\n"); //标准库输出函数,在屏幕打印"hello world!"(不包括双引号)return 0; //函数返回0值,

2011-07-29 02:24:21 769

Advanced Serial Port Monitor 4.3.1支持64位win7

串口 监听工具 少有的一款支持64位win7的

2011-11-18

签约必备:学好用好《劳动合同法》

众所周知,劳动合同是规范劳动关系最基本的法律形式;在法律上完善劳动合同制度,是夯实劳动关系基础的必然要求。

2009-11-22

C语言程序设计中常见错误分析

随着计算机科学技术的发展,C语言在IT行业中的地位很重要。各所高校都开设C语言程序设计课程。但是在学习过程中有些知识点对于部分学生尤其是初学者来说难以理解、掌握,很容易出现错误。本文针对这部分的知识点进行了详细的介绍和解释,举出具体实例分析错误的主要原因,以期对读者有所帮助。

2009-11-07

Python开发编码规范 PythonCodingRule

Python开发编码规范 PythonCodingRulePython开发编码规范 PythonCodingRulePython开发编码规范 PythonCodingRule

2009-10-13

Software Engineering - A practitioner's Approach

Software Engineering - A practitioner's Approach

2009-10-13

Ansi.C.Standard

Ansi.C.StandardAnsi.C.StandardAnsi.C.Standard

2009-10-13

CSF解码器csf+codec(1).msi

现今大多数视频播放器都不支持CSF格式,于是乎这解码器就有用武之地了。。。

2009-08-19

弹性力学-钱伟长.pdf

弹性力学-钱伟长.pdf弹性力学-钱伟长.pdf弹性力学-钱伟长.pdf弹性力学-钱伟长.pdf弹性力学-钱伟长.pdf

2009-08-19

电脑故障维修大全 chm

我们在电脑维修过程中,总会遇到各种各样的问题,每当这时候我就翻书或是上网搜索,总之是费时费力。几次经历之后便有了收集整理电脑故障的想法,于是这个故障大全诞生了。数据库每月更新

2009-07-25

空空如也

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

TA关注的人

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