
C/C++
文章平均质量分 84
seekthere
willing power
展开
-
Makefile.am几点说明
默认的安装路径:1)标准安装路径默认安装路径为:$(prefix) = /usr/local,可以通过./configure --prefix=的方法来覆盖。其它的预定义目录还包括:bindir = $(prefix)/bin, libdir = $(prefix)/lib, datadir = $(prefix)/share, sysconfdir =原创 2015-12-07 16:03:41 · 2341 阅读 · 0 评论 -
关于for(;;)和while(1)/while(true)区别
网传前者效率稍高,至少从汇编级看如此。但从我的编译器看二者是一样的,所以这个东西应该是与编译器高度相关的,保守点讲前者至少不会差于后者。 试验如下: g++版本4.8.2,c++代码如下: 对应汇编代码如下: 3级优化后的汇编代码: 可以看到,二者其实是一样的。 其他编译器没有试过,但我想,未来的编译器应该不会有任何差别。原创 2015-12-23 14:09:06 · 2905 阅读 · 1 评论 -
单例模式c++
一般用锁配合double check即可。class singleton{public: ~singleton(); static singleton* get_instance(); private: singleton(); singleton(const singleton& emg); singleton& operator =原创 2015-12-10 09:27:27 · 437 阅读 · 0 评论 -
cc -l选项
之前用g++ -l加载的库文件是.so,而今天发现cc -l加载的是.a,--help 也没有对这个选项作说明。进一步发现.c代码中使用了一些未定义的函数却还能编译通过,感觉很奇怪,难道c中可以直接使用函数,而不用include进来对应的头文件,只需加载进来相应的.a文件即可?做个小实验,如下://1.cint main(){abc();return 0;}执行c原创 2016-01-18 16:27:44 · 2501 阅读 · 0 评论 -
Epoll
Epoll一:概念首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作的内核对象。不管是文件,还是套接字,还是管道,我们都可以把他们看作流。之后我们来讨论I/O的操作,通过read,我们可以从流中读入数据;通过write,我们可以往流写入数据。现在假定一个情形,我们需要从流中读数据,但是流中还没有数据,(典型的例子为,客户端要从socket读如数据原创 2015-11-09 14:01:18 · 721 阅读 · 0 评论 -
reactor & proactor
看到这篇文章非常不错,忍不住转载,未经允许,还请见谅哈~地址:http://blog.youkuaiyun.com/caiwenfeng_for_23/article/details/8458299首先分享一下,我在网上看到的两篇不错的文章:正是这两篇文章才理解了reactor和proactor模式; Reactor模式,或者叫反应器模式高性能IO设计的Reacto转载 2015-11-09 09:11:49 · 439 阅读 · 0 评论 -
deque等容器元素析构
我们在定义类时,常常会显得很随意,这样会出现很多意想不到的错误,如下面的例子:/** *原创 2015-12-10 13:38:30 · 1041 阅读 · 0 评论 -
gcc/g++搜索路径
一:查看gcc/g++默认include路径1.`gcc -print-prog-name=cc1plus` -v2.`g++ -print-prog-name=cc1plus` -v3.echo 'main(){}' | gcc -E -v -二:include搜索路径1.当前目录2.编译的时候指定的路径,比如--prefix=/usr/local,查找的时候去/usr/l原创 2015-12-10 15:12:28 · 1774 阅读 · 0 评论 -
pthread相关简介
Linux下一套通用的线程库,遵循POSIX线程接口,称为pthread,广泛的被各种Unix所支持, 是由POSIX提出的. 因此, 它具有很好的移植性. 由于它是通过内核级线程来实现的, 就没有完全的实现它. 但从功能上来看, 它丝毫不逊色.编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。编译的时候需要-lpthread。一.线原创 2015-11-10 13:39:34 · 775 阅读 · 0 评论 -
thread pool
定义什么是线程池?简单点说,线程池就是有一堆已经创建好了的线程,初始它们都处于空闲等待状态,当有新的任务需要处理的时候,就从这个池子里面取一个空闲等待的线程来处理该任务,当处理完成了就再次把该线程放回池中,以供后面的任务使用。当池子里的线程全都处于忙碌状态时,线程池中没有可用的空闲等待线程,此时,根据需要选择创建一个新的线程并置入池中,或者通知任务线程池忙,稍后再试。背景目前的大多数网原创 2015-11-11 10:18:59 · 963 阅读 · 0 评论 -
TCP——_SYN、ACK_、FIN、RST、PSH、URG_详解
转载:http://blog.youkuaiyun.com/season_hangzhou/article/details/9161969三次握手Three-way Handshake 一个虚拟连接的建立是通过三次握手来实现的 1. (B) --> [SYN] --> (A) 假如服务器A和客户机B通讯. 当A要和B通信时,B首先向A发一个SYN (Synchr转载 2015-11-09 13:15:45 · 1030 阅读 · 0 评论 -
Centos7 disable ipv6
今天发现执行curl ipinfo.io 或者curl www.baidu.com会报错,而且yum makecache或者yum update的时候都会出现无法解析的情况,但是dns设置是正确(ping www.baidu.com是OK的),据说应该禁用ipv6,因为这样可以节约资源,经试验,当禁用所有ipv6模块后,curl正常,但如果仅仅是禁用ipv6而不禁用所有ipv6模块的话,curl仍原创 2015-11-19 20:20:03 · 5666 阅读 · 0 评论 -
printf 不足补0
int a = 6;printf("%02d",a);输出:06int a = 8;int n = 4;printf("%0*d",n,a);输出:0008原创 2015-11-17 16:44:08 · 12274 阅读 · 0 评论 -
Thread safety & Re-entrancy
From Wiki:Thread safety :A piece of code is thread-safe if it only manipulates shared data structures in a manner that guarantees safe execution by multiple threads at the same time.Thread原创 2013-10-11 11:38:38 · 873 阅读 · 0 评论 -
lvalue & rvalue
这个区别实在太复杂了,而实际上,能用到这个特性的机会又太少,姑且把几个比较好的网址记录下来,以备后用。 1 2 3 4 其中4博客里还有其他一些好东西。原创 2016-03-18 10:44:29 · 800 阅读 · 0 评论