自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱拼才会赢

成长记录

  • 博客(191)
  • 资源 (1)
  • 问答 (3)
  • 收藏
  • 关注

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

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

2018-05-05 18:03:13 71524 11

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

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

2020-07-07 23:20:14 3529 1

原创 在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 5997

原创 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 7725 3

原创 从sockaddr结构获取IP和端口

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

2018-07-20 21:53:32 20234

原创 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 4140

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

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

2018-07-16 09:23:15 5585

原创 gcc编译调式选项介绍

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

2018-07-09 22:33:00 1445

转载 BT种子原理简介

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

2018-05-30 19:46:33 14205

原创 在Eclipse编译调试aria2c开源库

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

2018-05-04 21:25:55 625

原创 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 1254

原创 Linux 编译Aria2c最新版本

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

2018-05-04 20:54:27 7564 2

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

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

2018-03-26 16:53:10 39597 2

原创 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 402

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

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

2018-03-20 16:53:25 10945 1

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

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

2018-03-07 16:27:35 199

原创 跟耗子一起学makefile

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

2018-01-28 22:30:48 566

转载 Linux环境变量总结

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

2018-01-22 01:33:58 329

原创 QT5串口通讯代码示例

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

2017-12-19 09:28:55 2448

转载 浅谈Qt内存泄漏

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

2017-11-14 14:51:47 1041

原创 Qt从指定目录读取图像文件保存并在QLabel上不断显示Demo

void readImg(){ std::vector vecImg; //获取文件的路径 //QString folderName = QCoreApplication::applicationDirPath(); 获取当前路径 QString folderName = QFileDialog::getExistingDirectory(this, tr("

2017-11-09 19:51:17 3361 2

原创 QT多线程简单例子

在Qt中实现多线程,除了使用全局变量。还可以使用信号/槽机制。以下例子使用信号/槽机制。功能: 在主线程A界面上点击按钮,然后对应开起一个线程B。线程B往线程A发送一个字符串,线程A打印出来。1、工程文件目录2、thread.h 和thread.cpp#ifndef THREAD_H#define THREAD_H#include<QThread>#in...

2017-11-08 20:50:57 21768 7

转载 Qt获取控件位置,坐标总结

总结的结果是:QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标。总结一:经过试验,QMouseEvent::globalPos()  和 QCursor::pos()效果一样,但是Qt帮助文档说不一样,可是我获得值确实相同的。QCursor::pos() == QMouseEvent::globalPos() 都是全局坐标;总结

2017-10-25 13:56:09 8952

原创 Halcon10.0与MFC混合编程(配置)

环境:Halcon10.0和 VS2013(Halcon10.0 跟之后版本有很大变动,需要留意API)具体区别参考:http://blog.csdn.net/liubing8609/article/details/67649223

2017-10-08 16:00:40 4577

原创 在Ubantu上安装oracle客户端工具sqlplus

前言:         我装这个oracle也是遇到很多问题,首先我是想通过在虚拟机ubantu上直接安装oracle服务端和客户端,因为我主要想使用shell操作数据库。然后安装过程中各种包,环境好麻烦,一直没安装成功。所以我最终把oracle服务端安装在windows上,客户端安装在linux上,减轻了好多工作量,但是也是遇到好多问题,网上博客好乱,跟着做出现了问题找不到解决方案。终于找到

2017-09-20 01:13:25 1640

原创 shell脚本批量导入数据到oracle数据库

1、方法:在shell读取文件(文件中已经写好了sql插入语句),然后直接导入到oracle数据库中。2、表stu结构和文件data.txt内容,如下。

2017-09-20 00:14:29 10194 2

原创 Linux信号来源和捕获处理以及signal函数简介

1、信号是什么?信号本质是什么?      日常生活中,绿灯是一个信号,停止标牌是一个信号,裁判手势也是一个信号。      信号本质(计算机):软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到...

2017-09-06 14:48:07 12599 1

原创 Opencv理解CV_DEFAULT宏

问题: 理解CV_DEFAULT宏定义

2017-05-28 19:53:08 875

转载 理解OpenCV中的宏定义 CVAPI(函数返回类型)(转载)

读代码时看到语句 CVAPI(IplImage*) cvCreateImage( CvSize size, int depth, int channels ); 遂想了解下这个CVAPI到底是怎么回事!#define CVAPI(rettype) CV_EXTERN_C CV_EXPORTS rettype CV_CDECL

2017-05-28 19:22:24 1265

原创 opencv error opening file(../.../modules/highgui/src/acp_ffmpeg_impl.hpp:545)(视频路径...)

环境:windows10+vs2013+opencv3.0问题:简单的读取本地一个视频(前提环境配置OK,能正确显示图片)(被这个问题困扰了好一会。然后发现是视频路径没有添加正确)以下是我的处理过程:

2017-05-28 11:22:02 4504

原创 unix/linux ls命令的实现

Understanding Unix/Linux Programming(Unix/Linux编程实践教程)学习模式:(1)它能做什么?(2)它是如何实现的?(3)能不能自己编写一个?(实验环境:gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) )ls命令学习(1)ls命令能做什么

2017-03-19 11:25:28 9610 5

原创 Quote

Quote.h#ifndef QUOTE_H#define QUOTE_H#include #include class Quote{ friend bool operator !=(const Quote& lhs, const Quote& rhs);public: Quote() { std::cout << "default constructing Q

2017-03-19 11:08:29 727

原创 unix/linux who命令的实现

Understanding Unix/Linux Programming(Unix/Linux编程实践教程)学习模式:(1)它能做什么?(2)它是如何实现的?(3)能不能自己编写一个?

2017-03-07 14:35:14 3098

原创 Chapter.16 Templates And Generic Programming

Introduction    Both object-oriented programming (OOP) and generic programming deal with types that are not known at the time the program is written. The distinction between the two is that OOP de

2017-03-06 22:26:39 746

原创 Chapter 15. Object-Oriented Programming

An OverviewThe key ideas in object-oriented programming are data abstraction, inheritance, and dynamic binding. Using data abstraction, we can define classes that separate interface from implement

2017-03-06 22:25:54 394

原创 Chapter.14 Overloaded Operations and Conversions

Overloaded operators are functions with special names: the keyword operatorfollowed by the symbol for the operator being defined. Like any other function, anoverloaded operator has a return type,

2017-03-06 22:25:33 391

原创 Chapter.13 Copy Constructor

the copy constructorWhat is a copy constructor? When is it used?A copy constructor isa constructor which first parameter is a reference to the class type and any additional parameters havede

2017-03-06 22:24:36 2201

转载 Linux命令中的常用符号解释

文章装载自:http://blog.sina.com.cn/s/blog_626831ef0100figg.html一、通配符:" * ” 、" ? ”  和DOS下一样,当我们不知道确切的文件名时,可以用通配符来进行模糊操作。“*”可以代表任意长度的任意字符,“?”代表一个任意字符。二、转义字符:" \ ”  和DOS的命名规则不同的是,通配符" * ”、" ? ”是可以

2017-03-06 19:24:53 502

转载 Linux命令之stty - 显示和修改终端行设置(转载)

用途说明stty命令用于显示和修改终端行设置(change and print terminal line settings)。常用参数stty命令不带参数可以打印终端行设置,加上-a参数可以打印得更详细些。stty size可以显示终端的大小,即行数和列数。stty命令还可以更改终端行的设置,格式如下:stty SETTING CHAR其中,S

2017-03-06 19:04:22 1544

原创 unix/linux more命令的实现

Understanding Unix/Linux Programming(Unix/Linux编程实践教程)学习模式:(1)它能做什么?(2)它是如何实现的?(3)能不能自己编写一个?(实验环境:gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) )#define PAGELEN 24#define LINELEN 512void do_more(FILE *);int see_more();int

2017-03-06 18:57:22 1932

Git-2.10.0-64-bit

最新Git工具, 自己使用Chrome下载了挺久,分享给大家吧

2016-09-28

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

TA关注的人

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