- 博客(191)
- 资源 (1)
- 问答 (3)
- 收藏
- 关注
原创 浅谈linux的命令行解析参数之getopt_long函数
前言 在linux中,经常需要各种命令,通常情况下都会带各种参数,而这些参数是如何解析的呢?通常使用GNU C提供的函数getopt、getopt_long、getopt_long_only函数来解析命令行参数。一、关于命令行参数 命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"--",如下表(ls 命令参数)所示,...
2018-05-05 18:03:13 72332 11
原创 浅谈std::move和std::forward原理
本文主要整理了C++11中std::move和std::forward的原理, 这对理解C++的移动拷贝有很重的意义。
2020-07-07 23:20:14 3689 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 6268
原创 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 8067 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 20494
原创 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 4198
转载 BT种子文件 bencoding编码详细解析
转载出处找不着。BT种子文件使用了一种叫bencoding的编码方法来保存数据。bencoding现有四种类型的数据:srings(字符串),integers(整数),lists(列表),dictionaries(字典)编码规则如下:strings(字符串)编码为:<字符串长度>:<字符串>例如: 4:test 表示为字符串"test"4:例子 表示为字符串“例子”字符串长...
2018-07-16 09:23:15 5763
原创 gcc编译调式选项介绍
前言 这几天使用gcc编译的程序,gdb调式的时候,有些外部函数无法跟踪,进不去。 后来发现是因为gcc编译选项没有设置正确,现在找找资料,记录一下。gcc参数选项 -g选项(-glevle): 生成调式信息,gnu调试器可以利用这个信息。可以在-g后面指定level生成调式信息的数量。level默认是2. (即-g等价于-g2)。 level 为0,不生成任何调式信息...
2018-07-09 22:33:00 1519
转载 BT种子原理简介
一、引言之前我这边在生产环境中使用 Murder 软件的 BT 上传下载的方式来实现大文件的快速分发。这属于 BT 软件的应用。最近重新看了下 BT 协议的分析与实现,现在重新了解下 BT 协议原理。二、BitTorrent 原理简述与传统客户端/服务器网络通信模式不同,对等方到对等方(P2P)通信模式在近年来越来越流行起来。在 P2P 模式中,服务和资源分布化,资源不集中存储在某些设备上,而是...
2018-05-30 19:46:33 14473
原创 在Eclipse编译调试aria2c开源库
前言 经过了对ara2c项目makefile的编写,接下来尝试将aria2c项目搬到eclipse上(Linux:Ubantu),方便调试。(不依赖IDE调试的话,目前还不熟练,因此为了加快对项目的理解,使用IDE对其进行调试)。一、安装Eclipse1 安装Eclipse 在Terminal中输入以下命令测试是否安装了Eclipse:eclipse如果没有安装,系统...
2018-05-04 21:25:55 687
原创 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 1323
原创 Linux 编译Aria2c最新版本
前言 这个库aria2c是一个支持多种方式且轻量级的下载工具, 可以支持bt,pt,磁力等下载。由于这些天接触了aria2c开源库,在windows、Linux、Android各个平台都编译过。并且了解了如何使用autoconf、automake工具自动生成makefile文件等等。以下介绍在linux(Ubantu)下安装过程。一、下载相关库文件具体下载库文件可以参考官...
2018-05-04 20:54:27 7634 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 41017 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 435
原创 关于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 11058 1
转载 理解阻塞非阻塞与同步异步的区别
来自知乎讨论:https://www.zhihu.com/question/19732473作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异...
2018-03-07 16:27:35 228
原创 跟耗子一起学makefile
makefile(一):make简介makefile(二) :make如何工作、变量使用、make自动推导makefile(三):makefile5大组成、引用其他文件、环境变量、工作方式。makefile(四):make规则书写、文件搜寻、伪目标makefile(五):多目标、静态模式、自动生成依赖性makefile(六):书写命令、嵌套make、定义命令包makefile(七):变量、over...
2018-01-28 22:30:48 631
转载 Linux环境变量总结
转载出处:https://www.jianshu.com/p/ac2bc0ad3d74Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。Linux环境变量分类一、按照生命周期来分,Linux环境变量可以分为两类:1、永久的:需要用户修改相关的配置文件,变量永久生效。2、临时的:用户利用export命令,在当前终端
2018-01-22 01:33:58 375
原创 QT5串口通讯代码示例
Qt版本:5.6.11、工程文件.pro添加QT += serialport2、串口参数配置头文件#include //提供访问串口的功能#include//提供系统中存在的串口的信息需要QSerialPort对象(serial) 对串口的名称、波特率、数据位、校验位、停止位、控制流等参数。绑定串口数据信号,当串口有数据可以读的时候,会触发信号readyRe
2017-12-19 09:28:55 2501
转载 浅谈Qt内存泄漏
一、简介 Qt内存管理机制:Qt 在内部能够维护对象的层次结构。对于可视元素,这种层次结构就是子组件与父组件的关系;对于非可视元素,则是一个对象与另一个对象的从属关系。在 Qt 中,在 Qt 中,删除父对象会将其子对象一起删除。 C++中delete 和 new 必须配对使用(一 一对应):delete少了,则内存泄露,多了麻烦更大。Qt中使用了ne
2017-11-14 14:51:47 1089
原创 Qt从指定目录读取图像文件保存并在QLabel上不断显示Demo
void readImg(){ std::vector vecImg; //获取文件的路径 //QString folderName = QCoreApplication::applicationDirPath(); 获取当前路径 QString folderName = QFileDialog::getExistingDirectory(this, tr("
2017-11-09 19:51:17 3451 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 22001 7
转载 Qt获取控件位置,坐标总结
总结的结果是:QMouseEvent中两类坐标系统,一类是窗口坐标,一类是显示器坐标。总结一:经过试验,QMouseEvent::globalPos() 和 QCursor::pos()效果一样,但是Qt帮助文档说不一样,可是我获得值确实相同的。QCursor::pos() == QMouseEvent::globalPos() 都是全局坐标;总结
2017-10-25 13:56:09 9196
原创 Halcon10.0与MFC混合编程(配置)
环境:Halcon10.0和 VS2013(Halcon10.0 跟之后版本有很大变动,需要留意API)具体区别参考:http://blog.csdn.net/liubing8609/article/details/67649223
2017-10-08 16:00:40 4648
原创 在Ubantu上安装oracle客户端工具sqlplus
前言: 我装这个oracle也是遇到很多问题,首先我是想通过在虚拟机ubantu上直接安装oracle服务端和客户端,因为我主要想使用shell操作数据库。然后安装过程中各种包,环境好麻烦,一直没安装成功。所以我最终把oracle服务端安装在windows上,客户端安装在linux上,减轻了好多工作量,但是也是遇到好多问题,网上博客好乱,跟着做出现了问题找不到解决方案。终于找到
2017-09-20 01:13:25 1716
原创 shell脚本批量导入数据到oracle数据库
1、方法:在shell读取文件(文件中已经写好了sql插入语句),然后直接导入到oracle数据库中。2、表stu结构和文件data.txt内容,如下。
2017-09-20 00:14:29 10455 2
原创 Linux信号来源和捕获处理以及signal函数简介
1、信号是什么?信号本质是什么? 日常生活中,绿灯是一个信号,停止标牌是一个信号,裁判手势也是一个信号。 信号本质(计算机):软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到...
2017-09-06 14:48:07 12690 1
转载 理解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 1320
原创 opencv error opening file(../.../modules/highgui/src/acp_ffmpeg_impl.hpp:545)(视频路径...)
环境:windows10+vs2013+opencv3.0问题:简单的读取本地一个视频(前提环境配置OK,能正确显示图片)(被这个问题困扰了好一会。然后发现是视频路径没有添加正确)以下是我的处理过程:
2017-05-28 11:22:02 4578
原创 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 9731 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 782
原创 unix/linux who命令的实现
Understanding Unix/Linux Programming(Unix/Linux编程实践教程)学习模式:(1)它能做什么?(2)它是如何实现的?(3)能不能自己编写一个?
2017-03-07 14:35:14 3134
原创 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 819
原创 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 427
原创 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 436
原创 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 2302
转载 Linux命令中的常用符号解释
文章装载自:http://blog.sina.com.cn/s/blog_626831ef0100figg.html一、通配符:" * ” 、" ? ” 和DOS下一样,当我们不知道确切的文件名时,可以用通配符来进行模糊操作。“*”可以代表任意长度的任意字符,“?”代表一个任意字符。二、转义字符:" \ ” 和DOS的命名规则不同的是,通配符" * ”、" ? ”是可以
2017-03-06 19:24:53 526
转载 Linux命令之stty - 显示和修改终端行设置(转载)
用途说明stty命令用于显示和修改终端行设置(change and print terminal line settings)。常用参数stty命令不带参数可以打印终端行设置,加上-a参数可以打印得更详细些。stty size可以显示终端的大小,即行数和列数。stty命令还可以更改终端行的设置,格式如下:stty SETTING CHAR其中,S
2017-03-06 19:04:22 1595
原创 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 1983
Matlab不能使用rotate 3D(鼠标旋转按钮) 急急急
2016-07-13
C++简单一问。模板实例化,数组引用
2016-05-14
vs12#include<initalizer_list>导入问题
2016-04-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人