自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C++菜鸟之C++之旅

C++学习、成长、感悟

  • 博客(67)
  • 资源 (3)
  • 收藏
  • 关注

原创 技术网站记录

<个人bog>lvyilong316 他的blog技术很全面,很底层。我暂时主要关注的epoll等多路复用那块.面向信仰编程(Draveness's Blog) 他的blog看了leveldb的介绍,感觉很有深度。其他文章没看,但是看标题也很有深度Git使用教程(一个不错的git教程,网站其他内容没看)三点水(里面有个“手把手教你构建C编译器”,非常nice)WuS...

2014-10-09 20:53:55 3927

原创 C++11——内存模型

[TOC]# 零、 前言    C++11早就来了,各种特性,其中影响最大的一个(我个人觉得)是多线程。    早早的去接触了线程相关的一些特性。而其中的一个子特性就是原子操作。而想要深刻理解原子操作,则必须要深刻认识`C++内存模型`。而前前后后18遍,都是以“战败”告终——都是囫囵吞枣,不得其法。    最近看`线性一致性`,突然有想起了这个“硬茬”...

2018-10-08 18:37:41 892

原创 网络地址之字节序

    之前,记录了下网络地址的认识,在结尾处,提到了ipv4地址+字节序问题,是很容易让人混乱的。所以,这里就来讨论下字节序。    其实,字节序是个单独的理论。本身来说,这方面的介绍是“数不甚数”,基本结构就是——介绍下什么是“字节序”,然后告诉下你“什么两种字节序分别是什么样子的”。然后,我就差不多了然了;然后,过两天我又差不多“混乱了”。我网上看到过一篇文章,讲出了让人混乱的根源(后续...

2018-09-26 14:24:01 268

原创 APUE2错误记录

    在14年5月份的时候,看APUE2的信号处理章节,看到“10.10 alarm和pause函数”的时候,其中有一个例子是“超时功能的read函数”;我当时试了试这个代码,但是发现,并没有超时功能,并且在chinaunix论坛上发了提问帖(链接:http://bbs.chinaunix.net/thread-4135617-1-1.html)。   具体代码如下: #inclu...

2018-09-26 14:21:46 246

原创 golang学习记录之Cgo

最近学习golang,学习到cgo章节。发现cgo还是有许多要注意的小细节,这里特别记录下。1、要用golang调用C代码,那么必须要`import "C"`,最好单独写一行,不要和其它的import写在一起,否则很可能报错。2、一旦用了c代码,那么cgo直接会编译、检查注释中的代码。所以,一层注释其实是看做C代码的。如果要用注释,至少要两层注释。(`// //cgo下面两层注释`)3

2016-11-23 10:58:19 1880

原创 随心所语之容器(C++ Container)

    作为软件开发者,必然会用到各种各样的容器:vector(array),list,map,set,tree等等(主要针对C++)。那么,其中的区别是什么么?官方教程(数据结构教科书)有些简单的对比、对其特征有描述。但是,真正用的时候,却仍然觉得飘忽,或者说凭感觉用,没有道理可言。    今天,突然来了点灵感,这里讲讲我的感受。    容器,顾名思义,就是用来放东西的。那么,这些东西都...

2016-09-23 21:16:38 549

原创 syslog写远端日志超时问题

背景描述:我们基于libuv开发了一个跨平台的底层库;其中,日志部分,用的是syslog,实际应用过程中是配置的romote; 需要将现有产品移植到基于uv的库。经过一段时间的调测,可以正常业务了。于是就上线了。问题描述:上线运行了1天多,突然发现有些人登陆失败、登陆不了;但是有些人却登陆正常。过了一段时间,直接发现在线玩家都无法正常登陆。重启之后,正常运行。但是过了一段实际,发现又无法正常登

2016-07-05 09:58:06 1692

原创 网络库性能测试

性能测试

2016-04-23 16:09:52 2820 1

原创 多线程锁的一点测试

C++11提供了原子操作atomic;而在一些代码中,也会经常看到利用原子操作来实现spinklock(pthread提供的spinklock似乎性能不如mutex)。于是,我就来试试用atomic来实现spinklock。测试,仅仅是测试lock/unlock。测试平台是windows和linux.测试结果,两种锁耗时完全一样;(另外,windows耗时大约是linux耗时的2倍)

2015-09-22 15:10:46 1349 1

原创 shared_ptr/unique_ptr一点体会

由于用muduo库,所以对shared_ptr有一定的了解;但是,对于unique_ptr就有些茫然了于是,了解了些相关资料,并且写了测试代码,对其有了一定的了解。    首先说明下,每一个pointer,都指向一个obj;每一个pointer,对该obj持有;一、unique_ptr    unique_ptr,其实就是一个简单的指针,它实现的功能,仅仅就是在作用域内有效,超过作用域

2015-08-10 14:54:52 6673

原创 signal学习代码实例(sigaction/signalfd)

#include //signalfd;#include //sigemptyset#include //exit;read;#include //#include inline void handle_error(const char *msg){ perror(msg); exit(EXIT_FAILURE);}void test_singal_pause(

2015-08-07 16:41:49 1160

原创 Linux定时器描述符(timerfd)shiy

最近,学习、研究Linux基于文件描述符的定时器应用。相关介绍N多,这里将碰到的问题,要注意的地方,说明下    这个主要有三个相关函数:1、timerfd_create(int clockid, int flags)说明:创建一个timer fd;1-1、clockid:可以是CLOCK_MONOTONIC或者CLOCK_REALTIME。说明:CLOCK_MONOTONIC是机

2015-08-06 14:53:54 1371

原创 随心所“语”之 STL

自己是个程序员,用C++开发也有5年时间了。期间,对STLyinx

2014-08-09 17:06:31 1028

原创 找工作之“不懂的地方”

找工作面试,会bei问到许多问题。

2014-06-25 22:41:11 981

原创 面经——1,万得电话面试

虽然工作5年,但是面试经验缺少的很,zhaogong

2014-04-29 09:49:22 5103

原创 traceroute示例程序学习原始套接字

最近学习原始套接字

2014-04-19 11:01:04 1553

原创 mpq中hash表的一点理解

最近学习了hash表,还去网上找了些资料来看。网上比较推崇的一个hash运用就是mpq,暴雪公司的一个算法。具体请看下面链接: 十一、从头到尾彻底解析Hash表算法MPQ技术内幕insidemopaq之前,研究了这个hash用法,有点认识;今天,照着抄写了一边,发现了另外的一些认识,主要是针对下面的这个hash函数:下面这个函数是初始化hash表cryptTab

2014-03-10 19:42:50 2277

原创 随心所“语”之多线程——谈谈我多线程的认识

现在,只要是高级编程语言,一般都支持多线程;只要公司面试,都会面试多线程。    最近,我也学习了点多线程,对其也有了点认识,这里也记录下。由于是自己的理解、总结(当然,是依据就是书本、前辈的经验),所以肯定会存在各种认识不到位,希望大家不吝赐教。再直接点:我就是犯贱、找喷!!!下面开始:    多线程,我觉得就是并行,并行的一种。多进程,也算并行。那么,多线程,对于多进程的好处在哪里呢?

2014-01-11 12:32:16 1481

原创 数据结构-hash表-mpq

最近,在学习hash表;网上想查些应用实例,找到了一些不错的文章。其中,有些人谈到了mpq,关联着hash谈的。所以,也对此做了研究,聊下看法。    首先,列出参考博客:1、http://blog.csdn.net/v_JULY_v/article/details/6256463    该博文,是通过自己对hash表的认识,谈到了mpq(也是自己的认识)。是一个“消化”过之后的文章,

2014-01-06 21:30:39 1255

原创 数据结构之“查找”-1:静态查找表

静态查找表,一般情况下,数据是比较稳定的,很少变动的。所以,可以不考虑构造成本(即一次构造,会使用很多很多次)。    首先,当然是我们常用的:顺序查找。即,一个一个往后找,找到就找到。常用数据结构有线性表。时间复杂度是O(N)。平均查找长度ASL=(n+1)/2.    然后,再进一步:如果是有序的,那么就可以用二分查找,也叫折半查找。这种查找其实是区域性查找:因为是有序的,所以可以通过

2014-01-05 17:10:07 2070

原创 数据结构之“查找”-0

最近,重新拿起了《数据结构》(严蔚敏版的),过了一遍。开始是看书,后来是看视频,偶尔看下书。觉得,需要记录些东西:主要是现在的理解。    现在,在学习第九章的查找,所以就从这里开始吧。    在第九章之前,主要的内容是一些常用的数据结构:线性表(顺序表和链表),字符串,数组和广义表,树,图。第八章开始,可能就是这些数据结构的实际应用了:许多实际的操作(即应用),是需要数据结构来支持的。比

2014-01-05 17:09:11 721

原创 严蔚敏-数据结构-递归算法总结

在看严蔚敏的数据结构视频,在32课时的时候,对递归算法进行了总结。在网上没找到对应的资料。而严蔚敏老师总结的又很不错,所以觉得有必要这里记录下(不是完全照搬,详细可以去找对应的视频)。一共有5点。    1、递归特性,一般都是可以分解成相同的小问题,同时解又可以归并。注意:递归,一定有个结束的时候(即要关注结束条件);还有注意参数的对应关系。    2、递归的实现,用的是“栈”。所以,递归

2013-12-19 20:18:38 4024

原创 随心所“语”之huffman编码

huffman编码、压缩,曾经写过一次,感觉很痛苦;最近,学习数据结构,又试了一次,感觉好多了。这里写下,总结下。    huffman编码、压缩,我觉得主要两件事情:1、对字符生成对应的huffman编码;2、对数据进行huffman压缩。这些书本、网络介绍的太多了(比如:http://coolshell.cn/articles/7459.html),而且也很容易理解,我这里简单的讲下:将要

2013-12-06 20:06:38 1116

原创 随心所“语”之“做”与“想”

经常,活听到somebody说,写代码,先想好了再写。如果边想边写的话,经常性会写返工代码:写着写着,发现不对了,那么就又得回头重写。    对此,我的态度是不可置否。因为,我写过一些东西,发现不清楚、不了解的情况下,根本不知道需要什么,那么就没法想好了再写。必须是写着,看看效果,然后再决定怎么做。    但是,就是因为这样,导致我写代码越来越想当然,养成了这个不好的习惯。特别是逻辑比较复

2013-11-24 11:41:11 848

原创 随心所语之“读书”

计算机科学与技术毕业,干C++开发4年,但是,发现好多东西、甚至是相关的东西都不会、不懂,于是,就需要学习,需要读书。也许,这就是所谓的学无止境。    我买的书,有30+ 本,但是看完的,却是寥寥无几,为什么呢?简单一个词:没有恒心。但是,为什么会没有恒心呢?这里,我有点没“恒心”的心得,希望纠正这些之后,可以有恒心。    读书,如果看到不懂的、弄不明白的,那么,就会被打击,导致看不下

2013-11-22 22:41:10 884

原创 最近学习计划

今天,阿里电话面试了,很失败。但是,好歹知道学什么了,所以,快点记录下。    1、tcp协议,一定要熟悉。一开始就问了,而且后续问项目相关问题的时候,会关联到tcp协议相关问题。    2、自己做过的项目。一定要能够说明白,你的项目流程是什么。这是最基本的。    由于我面的是无线事业部,所以对协议要求比较高。    另外,在网上的淘宝“面经”,许多时候是需要对数据结构熟悉的。

2013-11-15 11:09:18 1249

原创 随心所“语”之 3B大战:robots协议问题

最近,3B又开打了,大概事情是这样子的:百度利用robots协议,屏蔽360搜索(似乎不正当,我不知道);360搜索就强行抓取百度不给抓的内容。    我作为软件开发人员,谈下我的看法。    百度这么做固然不对,但是,360就可以因为百度这么做了,就不遵守robots规定了吗?    我看了下评论,许多人都认同360的做法,我对此表示极度的遗憾:在中国,经常做这种无视规定的事情,最明

2013-10-20 11:33:23 861

原创 Assemble(王爽)—— 中断(代码例子,测试不了)

中断,(好像)系统自带的,硬件芯片BIOS中。    (这里用的内存地址,都是绝对地址。另外,我用的是win7,nasm)    系统一共有256个中断——一个字节大小。中断,一般由int + 中断号来触发。触发之后,根据中断向量,调用对应的中断代码进行处理。在内存0-3ffh内存放的是中断向量。一个中断向量4个字节,分别2字节的cs和2字节的ip——指向对应的中断处理代码。    在

2013-08-17 15:55:31 1097

原创 Assemble(王爽)——nasm 和 masm的一些简单区分

最近在学习汇编语言,王爽的那本书。他用的汇编编译器是masm;而用选择的nasm;所以最近用了下,对两者区别有点体会,记录下。    首先,why nasm?我选择nasm,最重要的一个原因是它开源:我现在一般选择的软件,都是开源免费的,不再用盗版的、不正规的软件了。这是我的一个起誓。我努力去守誓!另外,就是跟masn比较相似,有利于我学习这本书。    汇编语言分为汇编指令,伪指令、标号

2013-08-12 09:56:17 15598 3

原创 Assemble(王爽)——1、2、3章学习记录

首先,是对汇编语言本身、和计算机之间的关系做了个介绍。个人总结:汇编,就是CPU和内存之间的交互。本身来说,计算机就是这样一个功能(其实,还包含各个硬件部件和内存交互,先忽略)。由于汇编贴近硬件,所以,汇编要做的工作就是把计算机的这个功能表达出来——CPU和内存交互。交互,那么CPU和内存之间就需要“通道”:总线。地址总线,数据总线,和控制总线。地址总线将内存地址告知内存,CPU通过数据总线读写一

2013-08-10 09:53:54 1236

原创 Assemble(王爽)——写在前面

最近,一个招聘,上面写的要求汇编。而我不会。突然就发狠,想着:要不就学下呗。于是就开始了学习汇编之旅。    汇编,我学过好多次了,效果都不怎么好(或者说是“没效果”)。第一次就是学校,大一的时候,学的第一门语言就是汇编。当时啥子都不懂,学会个二进制,然后加减法计算下,以为就了不得了。还有印象比较深刻的就是“寻址”,各种寻址各种乱,一团浆糊。最后,课上完了,考试通过了,就是不知所谓。第二次接触

2013-08-10 09:25:13 1890

原创 ubunt入门(最基础的)

做为计算机专业出来的人,用linux是基本技能。我也试着用linux,是在毕业之后。我选择的是ubuntu。从虚拟机,到双系统,多次来来回回的弄,发现许多问题都是再次碰到,所以这里记录下来。下次就不用再去查找了。由于这些问题都是网上搜索来的,所以参考了其他人的博客、论坛的结论,但是比较多,所以就不一一列出了。不过还是感谢大家。(另外,这里不是告诉你怎么做,而是记录正确答案的链接,这样就不用去搜

2013-07-19 16:45:24 1650

原创 dota==玩物丧志 ?NO

我是一个玩dota的人,非常喜欢,喜欢到容不下其他游戏——虽然我很菜。    看到许多人在毁dota“清誉”,我不能忍,但是有找不到有力的话语,所以很是不爽。最近终于找到一点半点,所以在这里说说。    dota有许多好的地方,教会我们许多东西,这点是毋庸置疑的。    当然,dota也有反面影响归结起来主要就一点:玩物丧志。所以,我们就来讨论下。    首先,这个可能不是游戏的问

2013-07-19 10:15:06 1009

原创 网络地址的认识

来来回回,反反复复,多次接触到网络地址(包括MAC地址,IP地址)。但是,却是云里雾里,不是很了解、明白,感觉就是在飘着,不踏实。    也就昨天,突然就“灵光一现”,感觉好像找到了“本质”,于是,就有了脚踏实地的感觉——踏实。(仅仅是个人浅见)    计算机中的网络编址,其实就是用一个N个字节来标示(MAC是6个字节,IP是4个字节,IPV6是128/8=16个字节)。为了可读性,所以呢

2013-07-18 15:56:38 767

原创 关于C++访问控制

今天看了下书,看到类的“访问控制”,对其有了新的认识(才知道以前的认识是一知半解)。特此记录下。这里所讨论的东西的前提是:不包含“友元”。    类的访问控制一共有3种:public,protected,private。其中,public成员是公共的,就是说所有的都能访问;protected,有派生类和自己可以访问;private,只有自己可以访问。(访问操作,好像只有函数可以。)

2013-05-31 11:24:04 877

原创 随心所语 之 计算机专业与linux

曾经,跟我同学、同事聊天的时候,下过这么个论断:一个学校计算机专业如何,看下机房用的操作系统就差不多了。今天,就来聊下这句话。    当然,这句话是有很大的片面性的。但是,如果一个学校机房,仅仅只有windows操作系统,没有其他系统,那么,这个学校的计算机肯定不会好的。其实吧,我想表达的是,linux(还有unix,我这里想表达的是类unix系统)对计算机专业的学生很重要。    举个例

2013-05-29 10:54:21 754

原创 随心所语之“速战速决”

天天跟代码、软件打交道,有的时候,觉得这个不好,那么不行,所以偶尔也会蹦个自己想法出来,并且想着方案、设计什么的,试着把这个想法实现——简单来说,就是想自己写段代码、写个软件。    我也有过想法,有些也试着去实现过。有点感触,我觉得其中最重要的一条就是“速战速决”。    一般,有个想法,都会很兴奋的——因为自己会觉得新颖,觉得创新。然后,在细想过程中,会发现一些问题。经过这些问题的锤炼

2013-05-29 10:18:07 792

原创 C++箭头操作符重载(记录下,备忘)

最近由于工作,学习了下箭头操作符,好复杂的说,过了没几天就忘了,又学了一遍。同时决定,这里记录下,备忘!(这里的内容,参考了C++primer ,加上了些我自己的整理)箭头操作符,一般都有左右两部分:a->b;(其中,b可以是函数或者成员;)如何开始:由a开始,分下面两种情况1、a是指针,那么就是我们熟悉的,指向我们a类型的成员数据或函数“b”;到这里,就结束了!2、a是对

2013-02-23 23:37:04 1543

原创 怎么才能长大?

这两天,我用指针函数了,虽然最终没用上(方案否决了),但是,至少用过指针函数了。我这里不是来讲解指针函数的,我也仅仅是个new bird。    我只是想到了个问题:我们许多的时候,看过了,相关知识点知道了,但是还是不会!怎么才能会?最终建议就是:敲代码。是的,我也这么认为的。我很是赞同。但是,我为什么没有去做?周围的同事看C++ primer,我跟他说:多敲哦,否则没用,记不住。但是,我自己

2013-01-24 17:47:42 541

转载 腾讯笔试题

写在之前:       今年我找工作,去了几家单位,做了笔试,发现好多题目 都在其中,而我不会的80%出现在了其中,所以这里转下,记录下,也算与大家分享下。(当然,其中有些答案也不竟然全对,许多可以不确定的最好自己试试,比如,第一页,第4(3)题,我将代码拷贝,执行,发现与他的答案不符。)原文网址:http://kb.cnblogs.com/page/54484/下面是原文的拷贝:

2012-09-10 10:57:26 1338

protobuf-2.5.0

can not download from google.com; upload to it

2014-12-16

gperftools-2.1

由于国内没法上google的 一些网站,导致下载不了gperftools。我花了很大的力气,才下到一个。这里跟大家分享下。该库的license是BSD3.0的。 如果我侵权了,请告知,我会删除。谢谢 更新:现在github上可以直接clone了,具体地址:https://github.com/gperftools/gperftools。有需要的朋友可以直接去github下载最新的

2014-07-30

CLog,C++编写的一个日志类,与大家交流下

////////////////////////////////////////////README//////////////////////////////////////////////////// // DebugLog--write some log for debug // //初衷: 版本开发的时候,有些功能点是可以项目无关的,比如是解析某个文件;开发完成之后,测试的话, // // 需要整改项目程序运行、测试,功能点的触发条件比较麻烦。所以,有的时候,对于这样的功能点, // // 我会选择进行本地开发,然后再合到项目中去. // // 但是,每次功能点开发的时候,一般用的是printf直接打屏,但是项目中用的是写文件,所以移植 // // 的时候还需要进行不少改动. // // 于是,我就想自己写个log,可以与项目的日志函数进行适配。那么,上面的问题可以得到比较好的 // // 解决(或者说是规避)。 // //附注:我不知道这样做有没有意义,也就是根据自己的经验,试着做了下。经验不足,水平有限,肯定会 // // 导致设计不足,不对,甚至是整个设计没有意义。如果是这样,希望能不吝交流、赐教. // // EMail: hu__haifeng@163.com // ////////////////////////////////////////////////////////////////////////////////////////////////////// //Version :0.5 // //Description:该版本打造了基本的架构,并且实现了不带参数的打印日志(仅仅是字符串),可以进行监督的测试.// // 由于我项目经验有限,仅仅见过两种不同的项目日志分隔,所以也只能以此为参考,不一定可以 // // 适配其他项目日志函数. // //Adapter :可以用宏定义来进行适配。比如: // // #ifdef __CLOG_H__ // // #define DEBUG(VAR) mylog.Print(__FILE__, __LINE__, VAR, LOG_DEBUG) // // #else // // #define DEBUG(VAR) function //项目用的标准的日志函数. // // #endif // // // //Plan :1.0版本写成可以带参数的日志。2.0版本实现客户端、服务器版本(可以支持不同的进程写日志)。// //////////////////////////////////////////////////////////////////////////////////////////////////////

2012-02-20

空空如也

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

TA关注的人

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