5 gAndyCong

尚未进行身份认证

我要认证

何以解忧,唯有编程

等级
TA的排名 9k+

浅谈std::move和std::forward原理

本文主要整理了C++11中std::move和std::forward的原理, 这对理解C++的移动拷贝有很重的意义。

2020-07-07 23:20:14

在Eclipse上调试C++程序报错:x86-64 is not compatible with target architecture i386.

背景:  在windows上使用Eclipse上调试C++程序。程序出错如下:warning: `/cygdrive/c/Windows/SYSTEM32/ntdll.dll': Shared library architecture i386:x86-64 is not compatible with target architecture i386.warning: `/cygdr...

2018-10-26 09:54:00

Eclipse C++: Can't find a source file at.......

 问题:当我windows上使用Eclipse调式C++程序的时候,报的错误大致如下,找不到某个源文件。Can't find a source file at "/usr/src/debug/mingw64-i686-winpthreads-5.0.4-1/src/thread.c" Locate the file or edit the source lookup path to i...

2018-10-26 09:30:22

从sockaddr结构获取IP和端口

前言      从sockaddr结构中提取IP,先将结构sockaddr转为sockaddr_in结构,然后用在利用相关API将其中的IP地址从网络格式转化我们熟悉点分十进制的字符串。一、sockaddr和sockaddr_in结构程序员不应操作sockaddr结构,sockaddr是给操作系统用的程序员应使用sockaddr_in来表示地址,sockaddr_in区分...

2018-07-20 21:53:32

Linux Eclipse C++安装以及日常使用

前言     Eclipse for C++ IDE,在linux下对于C/C++程序是非常好用的IDE。一、安装1、如果ubuntu上已经安装了eclipse,想重新安装。先使用如下命令删除之前版本:sudo apt-get autoremove eclipse*rm -r ~/.eclipse/参考:Ubuntu删除Eclipse2、安装java环境,因为eclip...

2018-07-20 21:06:08

BT种子文件 bencoding编码详细解析

转载出处找不着。BT种子文件使用了一种叫bencoding的编码方法来保存数据。bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典)编码规则如下:strings(字符串)编码为:<字符串长度>:<字符串>例如: 4:test 表示为字符串"test"4:例子 表示为字符串“例子”字符串长...

2018-07-16 09:23:15

gcc编译调式选项介绍

前言    这几天使用gcc编译的程序,gdb调式的时候,有些外部函数无法跟踪,进不去。 后来发现是因为gcc编译选项没有设置正确,现在找找资料,记录一下。gcc参数选项 -g选项(-glevle): 生成调式信息,gnu调试器可以利用这个信息。可以在-g后面指定level生成调式信息的数量。level默认是2. (即-g等价于-g2)。            level 为0,不生成任何调式信息...

2018-07-09 22:33:00

BT种子原理简介

一、引言之前我这边在生产环境中使用 Murder 软件的 BT 上传下载的方式来实现大文件的快速分发。这属于 BT 软件的应用。最近重新看了下 BT 协议的分析与实现,现在重新了解下 BT 协议原理。二、BitTorrent 原理简述与传统客户端/服务器网络通信模式不同,对等方到对等方(P2P)通信模式在近年来越来越流行起来。在 P2P 模式中,服务和资源分布化,资源不集中存储在某些设备上,而是...

2018-05-30 19:46:33

浅谈linux的命令行解析参数之getopt_long函数

前言         在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNU C提供的函数getopt、getopt_long、getopt_long_only函数来解析命令行参数。一、关于命令行参数     命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"--",如下表(ls 命令参数)所示,...

2018-05-05 18:03:13

在Eclipse编译调试aria2c开源库

前言                经过了对ara2c项目makefile的编写,接下来尝试将aria2c项目搬到eclipse上(Linux:Ubantu),方便调试。(不依赖IDE调试的话,目前还不熟练,因此为了加快对项目的理解,使用IDE对其进行调试)。一、安装Eclipse1 安装Eclipse 在Terminal中输入以下命令测试是否安装了Eclipse:eclipse如果没有安装,系统...

2018-05-04 21:25:55

Aria2c开源库makefile文件的编写

开源库链接:https://github.com/aria2/aria2.git前言     这个库本身没有提供makefile文件,而是使用configure.ac和makefile.am文件自动生成makefile。本文通过学习其自动生成的makefile文件,自己尝试写一个makefile,编译整个项目。    注:使用mingw64编译器,生成windows上可执行的aria2c.exe可...

2018-05-04 21:01:55

Linux 编译Aria2c最新版本

前言 这个库aria2c是一个支持多种方式且轻量级的下载工具, 可以支持bt,pt,磁力等下载。由于这些天接触了aria2c开源库,在windows、Linux、Android各个平台都编译过。并且了解了如何使用autoconf、automake工具自动生成makefile文件等等。以下介绍在linux(Ubantu)下安装过程。一、下载相关库文件具体下载库文件可以参考官...

2018-05-04 20:54:27

P2P原理以及如何实现(整理)

前言        这几天看了p2p的原理以及实现的demo,整理一下。一共分为三部分,第一是概念原理,第二是demo实现,第三是p2p协议相关以及分类。 一、概念原理 比较全面的理解:  https://zhuanlan.zhihu.com/p/30351943                               http://www.cnblogs.com/pannengzhi/p/4...

2018-03-26 16:53:10

window和linux编译boost库

windows(vs2015)1、下载boost版本:http://www.boost.org/users/download/2、下载之后解压:3、编译32位的boost库(64位类似)开始任务栏打开Visual Studio 2015,32位系统选择VS x86本机工具命令提示符。然后切换到boost源代码文件夹。运行boosttrap.bat.执行如下操作,对boost进行编译(msvc版本1...

2018-03-20 20:00:51

关于FileZilla无法连接阿里云服务器

(1)阿里云的公网IP(2)端口是22,网上很多介绍是21(当时也没去注意,后来发现一直连接不上去,后来才发现)在FileZilla中: -用sftp协议连接Server,需要用port22 -用ftp协议连接Server,用port21具体操作教程:http://blog.csdn.net/s_clifftop/article/details/77337839...

2018-03-20 16:53:25

理解阻塞非阻塞与同步异步的区别

来自知乎讨论:https://www.zhihu.com/question/19732473作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异...

2018-03-07 16:27:35

跟耗子一起学makefile

makefile(一):make简介makefile(二) :make如何工作、变量使用、make自动推导makefile(三):makefile5大组成、引用其他文件、环境变量、工作方式。makefile(四):make规则书写、文件搜寻、伪目标makefile(五):多目标、静态模式、自动生成依赖性makefile(六):书写命令、嵌套make、定义命令包makefile(七):变量、over...

2018-01-28 22:30:48

Linux环境变量总结

转载出处:https://www.jianshu.com/p/ac2bc0ad3d74Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。Linux环境变量分类一、按照生命周期来分,Linux环境变量可以分为两类:1、永久的:需要用户修改相关的配置文件,变量永久生效。2、临时的:用户利用export命令,在当前终端

2018-01-22 01:33:58

QT5串口通讯代码示例

Qt版本:5.6.11、工程文件.pro添加QT += serialport2、串口参数配置头文件#include //提供访问串口的功能#include//提供系统中存在的串口的信息需要QSerialPort对象(serial) 对串口的名称、波特率、数据位、校验位、停止位、控制流等参数。绑定串口数据信号,当串口有数据可以读的时候,会触发信号readyRe

2017-12-19 09:28:55

浅谈Qt内存泄漏

一、简介       Qt内存管理机制:Qt 在内部能够维护对象的层次结构。对于可视元素,这种层次结构就是子组件与父组件的关系;对于非可视元素,则是一个对象与另一个对象的从属关系。在 Qt 中,在 Qt 中,删除父对象会将其子对象一起删除。       C++中delete 和 new 必须配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt中使用了ne

2017-11-14 14:51:47

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。