
C++
mylq
人生百年几今日,今日不为真可惜!
展开
-
C++ Virtual详解
原文地址Virtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的prin转载 2016-04-28 11:05:27 · 481 阅读 · 0 评论 -
一些常用小函数
进行日志记录时,经常遇到一些二进制数据需要保存,但是日志记录函数一般不支持二进制,可以考虑将二进制数据转换成16进制字符串保存。std::string toHexString(unsigned char* input, const int datasize){ std::string output; char ch[3]; for(int i = 0; i &l...原创 2018-07-04 15:35:19 · 378 阅读 · 0 评论 -
获取当前进程的可执行文件的绝对路径
windows下可以使用GetModuleFileNameA()函数获取绝对路径,不过文件路径中的反斜杠需要进行替换。linux系统中有个符号链接:/proc/self/exe 它代表当前程序,所以可以用readlink读取它的源路径就可以获取当前程序的绝对路径。 readlink的man注释 Prolog This manual page is part of the POSIX Pr...原创 2018-02-25 18:26:10 · 1773 阅读 · 0 评论 -
TortoiseSVN在samba目录上不显示图标
我的working directory放在samba上,发现TortoiseSVN似乎不能自动检查文件的状态,因此目录/文件的图标都没有变化。原来需要设置一下TortoiseSVN在Settins对话框中,选择Look and Feel -> Icon Overlays,选中其中的”Network drive”。另外据说在samba上还有一个性能问题,所以建议把Look and Fe转载 2018-01-18 14:24:32 · 712 阅读 · 1 评论 -
常用makefile格式
#OBJS=handledata.o source.oOBJS=source.omain:$(OBJS) g++ -o lq-client $(OBJS) -l curl#handledata.o:handledata.c# g++ -c -Wall handledata.c -I /usr/local/include/curl -std=c++11source原创 2017-04-18 14:19:02 · 906 阅读 · 0 评论 -
libcurl+zlib+openssl编译安装
在windows下源码安装libcurl并开启zlib和openssl支持实在是太痛苦了,折腾了很长时间没有搞定,于是转向了centos7。原创 2017-04-18 10:19:58 · 4213 阅读 · 0 评论 -
socket模拟http请求
服务器端先初始化Socket,然后与端口绑定(bind),对端口进行监听(listen),调用accept阻塞,等待客户端连接。在这时如果有个客户端初始化一个Socket,然后连接服务器(connect),如果连接成功,这时客户端与服务器端的连接就建立了。客户端发送数据请求,服务器端接收请求并处理请求,然后把回应数据发送给客户端,客户端读取数据,最后关闭连接,一次交互结束。 如果只是模拟http原创 2017-03-08 15:55:49 · 882 阅读 · 0 评论 -
UDPchecksum值不对导致可以抓包获取到但是应用层recvfrom无法接收到数据
UDP checksum今天在驱动里面改了UDP packet的payload,发出这个UDP包之后,对方在驱动里面能收到这个包。但是indicate给OS之后,APP却收不到这个包。Debug了一段时间之后,我怀疑应该是checksum之类的问题,果然…简单讲下UDP的checksum:UDP字段占用8个字节,checksum就是最后的两个字节,如果checksum==0,那么Recei...原创 2018-10-25 16:33:03 · 8489 阅读 · 2 评论