自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(30)
  • 收藏
  • 关注

转载 fork+execve+dup2

linux系统中,如果需要调用可执行文件.大致模式如下: 1.建立socketpair用于父子进程通信 2.fork子进程 3.在子进程中使用dup2绑定标准输出到socketpair中子进程使用的fd 使用execve族函数执行可执行文件,标准输出会通过socketpair...

2018-10-25 10:33:00 306

转载 TCP握手与挥手

标识位&&Sequence Number&&Acknowledgment Number的变化 (关于标识位/Sequence Number/Acknowledgment Number定义,作用以及在协议中的位置请参考博文<<TCP协议>&g...

2018-03-28 15:47:00 147

转载 TCP协议

TCP 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+...

2018-03-28 11:23:00 136

转载 sed

持续记录:1.将源文件中第一次出现'开始字符串'的位置开始,一直到出现'结束字符串'为止的内容存入目标文件.命令: sed -n '/开始字符串/,/结束字符串/p' 源文件 > 目标文件 2.替换所有匹配的字符串命令:sed 's/源字符串/目的字符串/g' ...

2018-03-27 17:04:00 129

转载 IP协议

IP协议 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-...

2018-03-27 15:42:00 88

转载 const限定符

const对象特性为创建后不可改变,所以必须初始化 1.const引用: 常引用不能改变所引用的对象 int a = 1; const int &b = a;//a的值不可以通过b修改 2.指向常量的指针 指向常量的指针,不能通过该指针改变对象的值 int a = 1;...

2018-03-26 18:37:00 53

转载 MS-Chapv2认证过程--RFC2759

1.客户端发送request 2.服务端返回16字节的服务端AuthenticatorChallenge(随机数) 3.客户端生成16字节的客户端peerChallenge(随机数) 4.客户端计算根据password计算NTpasswordHash,并使用peerChallenge,A...

2017-12-27 16:45:00 2782

转载 gdb调试常用命令

gdb ./待调试程序 b 函数名 //在该函数上打断点 p 变量名 // 打印变量 cont // 在断点停下后此命令使程序继续执行 s //单步调试,有函数则进入 n //单步调试 ,不进入函数内部 gdb调试core文件 gdb 程序名 core名 //cor...

2017-12-01 16:49:00 123

转载 windows 记事本utf8编码BOM头问题

windows记事本另存为utf-8编码会在文件开头加上EF BB BF三个字节.即BOM 我在linux下从文本文件读取utf8转为GBK时,发现第一行转换永远错误,从第二行开始则全部成功. 所以希望如果不确定文本文件是否为windows记事本编辑,需要在程序中加上判断文件头三个字节的逻...

2017-10-13 16:41:00 1161

转载 c++数组析构(delete delete[])

对于基本数据类型 例如char tmp = new char[100]; delete tmp 和 delete[] tmp 效果一样(在vc++和g++下测试) 所以基本类型new的数组使用std::auto_ptr管理应该不会有泄露,不过还是不建议这样用 注意:不是基本数据类型的数...

2017-09-20 13:58:00 858

转载 linux编译undefined reference to "xxxxx"

编译时报错undefined reference to 共享库中的函数 通过nm -C xxxx.so |grep "连接函数名" , 可以判定库中包含该函数,函数名和参数完全对应 最后定位是,由于编译库时有编译选项-pie , 去掉该选项后连接正常,错误排除 另,如果一个文件中只有某函...

2017-09-18 10:56:00 295

转载 c++ STL string的引用计数

STL string的引用计数,多个通过拷贝构造和复制操作具有相同值的string共享一块内存,由引用计数该参数保存共享内存的string个数, 通过写时拷贝防止修改共享内存的值. 但是,如果强制转换可能会引起共享内存被修改,例如 std::string str1 = "共享内存";...

2017-09-06 19:30:00 189

转载 c++程序内存隔段时间上涨一次(跳涨)

如果相隔基本固定的时间上涨,则基本可以确定是定时任务引起的. 如果上涨的内存特别大,要么你的系统中有这样大的对象; 要么99.9%这个内存泄露是在循环中, 最后向map中添加键值对时记得先检查key是否已存在,如果已存在记得妥善处理value中的对象, 不建议使用下标的方式添加键值对,...

2017-08-30 17:26:00 586

转载 查看库文件是64位 or 32位

windows : dumpbin /headers 文件路径\xxx.dll linux: objdump -a xxx.a file xxx.so 转载...

2017-07-21 10:13:00 89

转载 调试国密算法验签遇到的问题

项目要求服务端与客户端支持国密证书建立ssl通道.在本地demo中可以建立完整的ssl连接并通信. 服务端建立ssl时直接使用openssl加载根证书,服务端证书,服务端私钥.这里毫无问题. 但是客户端必须调用windows的csp接口,而且windows系统目前不支持导入国密证书,所以建...

2017-07-08 10:11:00 593

转载 关于C++锁

一,锁的作用是用来保护全局变量的,例如,static静态数据,global全局数据,或者new和malloc等数据,还有单例模式的类。 二,锁的范围是什么,锁的范围是以{ }为生命周期。 三,不出现死锁的模型是:lock unlock必须成对出现 ,或者是不同数据使用不同的锁。...

2017-07-07 11:12:00 369

转载 openssl建立tls1连接过程(s->state的变化过程)

以下是调用openssl建立tls1连接过程中,openssl内部对握手阶段的处理过程,可以对照抓包观察 以下服务端和客户端是并行进行的,只是需要接收对端消息时才会进入等待状态.为方面理解,所以将客户端和服务端的处理按顺序排好. 具体的状态转换代码请见: server端 /ssl/s3...

2017-06-24 18:16:00 588

转载 部分国密算法OID

1.2.156.197.1.104 SM4分组密码算法 1.2.156.197.1.301 SM2椭圆曲线密码算法 1.2.156.197.1.301.1 SM2-1椭圆曲线数字签名算法 1.2.156.197.1.301.2 SM2-2椭圆曲线密钥交换协议 1.2.156.197....

2017-06-23 11:00:00 3066

转载 linux64位系统编译32位openssl

setarch i386 ./config -m32 --prefix=你要安装的目录 (推荐--prefix=./ --openssldir=./原因见博文<Windows编译release版本和debug版本的openssl>) make depend make ...

2017-06-09 14:29:00 689

转载 linux C程序内存空间组成

linux下内存空间布置: 一个典型的Linux C程序内存空间由如下几部分组成: 代码段(.text)。这里存放的是CPU要执行的指令。代码段是可共享的,相同的代码在内存中只会有一个拷贝,同时这个段是只读的,防止程序由于错误而修改自身的指令。 初始化数据段(.dat...

2017-06-03 09:29:00 90

转载 Windows编译release版本和debug版本的openssl

注意事项: 1.生成的ntdll.mak或者nt.mak的CFLAG中/MD 最好修改为/MT否则可能会报MSVCr100.dll丢失的错误. 2.编译第一步使用perl Configure VC-WIN32 no-asm--prefix=./ --openssldir=./ 然后op...

2017-05-10 11:04:00 304

转载 遇到的c++错误的持续记录

1.不允许指针指向不完整类类型-------------------------------没有引入 定义指针指向类型 的头文件 2. 编译过程停在一个地方也不报错: 编译openssl每次都停在一个.c文件处,之前可以编译,编译停止的地方也没有任何报错----------由于证书过期...

2017-05-10 09:45:00 86

转载 linux 守护进程

linux中每一个终端建立的进程都依赖于终端.终端关闭,终端建立的进程也自动关闭. 所以需要后台运行的进程需要脱离终端的控制,变成没有终端与之相连的进程----守护进程 void daemon(){ pid = fork(); if(pid > 0)//结束父进程(...

2017-05-06 10:23:00 53

转载 c++ makefile

http://blog.csdn.net/haoel/article/details/2886 链接当中讲解了makefile文件的编写规则,非常详细 在一个复杂项目中,如果需要生成不同版本的安装包,可以把逻辑判断放到脚本中,然后在脚本中调用make命令 ...

2017-04-18 14:45:00 53

转载 visual studio 编译64位软件环境设置转载

c++编译64位一般需要注意如下问题: 1.程序中是否有不支持64位的数据类型,可以直接编译看报错信息 2.程序依赖的第三方库要全部编译为64位 3.类型转换可能发生的数据丢失(size_t由4个字节变成8个字节,指针由四个字节变为8个字节) ---------------------...

2017-04-12 14:51:00 270

转载 多线程下全局静态变量引起的bug定位过程

bug表现特征: 大并发下偶现 , GDB调试显示为一个赋值语句导致 通过GDB打印堆栈信息,定位到一个全局静态变量的赋值语句引起错core dump. 具体引起dump的是系统的free操作.也就是打印出来的堆栈的#0 在多线程环境下,推测全局静态变量发生以下步骤. ...

2017-04-10 20:11:00 145

转载 exit 和 _exit

在多线程环境中,使用exit退出,在调用exit后其他线程还会执行一段时间,直到进程被销毁. 有一种偶现情况: 调用exit,但是进程到最后并没有被杀死,部分线程仍然运行.比较诡异. 最后直接替换为_exit,调用_exit后立即调用系统接口销毁进程. 我的应用场景: 有一个监控进程...

2017-03-31 15:57:00 72

转载 c++ sizeof 和strlen

char a[4] = "abc"; size0f(a);// 结果为4 strlen(a);//结果为3 所以sizeof应该是判断实际的内存长度,而strlen则判断字符串内存中'\0'之前的长度 char a[4]={'a','b','c','d'}; sizeof(a)...

2017-03-07 10:37:00 66

转载 C++ ifstream在linux下编译报错

项目中使用ifstream读取文件内容open函数中传递字符串参数的文件路径时,在windows下编译通过,但是在linux下编译失败.最后将std::string 转换为char * 传入open函数. char *p;p = (char *)malloc((str.lenth() +...

2017-03-06 17:18:00 1346

转载 C++ 单例模式遇到"无法解析的外部符号"错误

私有 静态 成员变量, 使用前必须初始化.否则报错"无法解析的外部符号" 应在对应的xxx.cpp文件当中A* A::a = NULL初始化 使用单例模式时遇到的问题 转载于:ht...

2017-03-02 19:09:00 666

空空如也

空空如也

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

TA关注的人

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