自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Barry

无限进步, 无限可能

  • 博客(40)
  • 资源 (8)
  • 收藏
  • 关注

原创 Linux系统--sshfs挂载出现read: Connection reset by peer错误的解决方法

目录一 概述二 一般用法三 遇到的问题四 问题定位与解决一 概述SSHFS(SSH Filesystem)是一种通过普通ssh连接来挂载和与远程服务器或工作站上的目录和文件交互的文件系统客户端,其通过 SSH 文件传输协议(SFTP)挂载远程的文件系统并且在本地机器上和远程的目录和文件进行交互,实际场景中,我主要在挂载后创建各个库文件所在路径的软链接,用于交叉编译。二 ...

2019-12-06 14:08:50 7748

原创 macOS--使用Boot Camp安装双系统后win10下罗技鼠标蓝牙连接延迟(卡顿、不跟手)的解决办法

使用Boot Camp安装双系统(macOS + windows 10)后,启动win10,开始未安装BootCamp提供的驱动时通过蓝牙添加鼠标(罗技 MX Anywhere 2S)后使用正常(此时未安装无线网卡驱动),但安装驱动后反而不正常了,出现移动操作延迟、不跟手的现象,但关闭无线WiFi(网卡)功能后问题消失。经查阅,解决办法如下:·把无线网卡的蓝牙协作功能关掉:打开你的设备管理器 ...

2018-07-29 01:53:05 27715 2

转载 Windows开发--获取文件大小及获取文件夹大小的方法

获取文件大小Windows提供了好几个API函数来获取文件大小,还可以使用标准C和标准C++库函数来获取(当然了,标准库函数的底层实现也是调用了Windows API函数,效率上可能有所影响)。const wchar_t* pFile = L"C:\\chromium.tar";//文件大小9,332,330,496 字节 32位整形无法装下HANDLE hFile = Create

2017-07-26 10:54:35 6271

转载 Windows开发--控制程序运行单一进程

实际开发中,特别是那些对系统资源(如某些硬件等)要求唯一访问的软件系统来说,仅允许一个进程的存在,这就需要对进程的数目进行严格控制,下面说明windows下的两种方法的实现。    文章转载的,懒的写了。方法一:使用#pragma data_seg步骤一:在应用程序的入口文件前面加上如下语句#pragma data_seg("flag_data")int g_Co

2017-07-20 20:01:31 771

转载 架构模式--函数回调机制、异步函数回调机制图例详解

函数回调机制,一种双向调用思想,简单来说就是,如下图所示:           在层次一中的方法一(函数)调用层次二中的方法,并传入函数二的地址,而这个被调用的方法又会调用层次一中的方法,这个最后被调用的方法二就是回调方法。方法三调用方法二就是回调的过程。一个有意思的例子,大家可以先感受一下:“诸葛亮给赵子龙一个锦囊,吩咐他危急时打开按锦囊指示办, 锦囊里的命令就是回调函数,危急时

2017-07-20 14:46:13 831 2

转载 Linux系统--/proc/uptime文件中参数说明

有关/proc/uptime这个文件里两个参数所代表的意义: [root@app ~]#cat /proc/uptime 3387048.81 3310821.00 第一个参数是代表从系统启动到现在的时间(以秒为单位):3387048.81秒 = 39.20195381944444天,说明这台服务器已连续开机39.20195381944444天 第二个参数是代表系统

2017-07-18 00:22:54 1625

转载 Linux开发--相对时间

今天,再次碰到一个由于系统时间调整导致的bug。不得不再次查找完美的问题解决方案。虽然,按道理来说,系统时间进行重置之后,一些应用程序的行为出现异常是合乎情理,并且是可以被理解并接受的,最重要的是这样的问题都可以通过重新启动操作系统来解决(微软大哥解决问题之道),但是,对于软件开发人员来说,应该尽量避免非必要的重启。对自己严格要求点儿似乎没什么过错!?对绝对时间的依赖似乎不怎么容易

2017-07-18 00:21:18 791

转载 C/C++开发--#pragma pack(n)和__attribute__((aligned(m)))的区别

前者告诉编译器结构体或类内部的成员变量相对于第一个变量的地址的偏移量的对齐方式,缺省情况下,编译器按照自然边界对齐,当变量所需的自然对齐边界比n大 时,按照n对齐,否则按照自然边界对齐;后者告诉编译器一个结构体或者类或者联合或者一个类型的变量(对象)分配地址空间时的地址对齐方式。也就是说,如果将__attribute__((aligned(m)))作用于一个类型,那么该类型的变量在分配地址空间时,

2017-07-17 20:20:38 513

转载 Linux系统--浅谈标准I/O缓冲区

标准I/O库提供缓冲的目的是尽可能地减少使用read和write调用的次数。它也对每个I/O流自动地进行缓冲管理,从而避免了应用程序需要考虑这一点所带来的麻烦。不幸的是,标准I/O库最令人迷惑的也是它的缓冲。标准I/O提供了三种类型的缓冲:1、全缓冲:在填满标准I/O缓冲区后才进行实际I/O操作。常规文件(如普通文本文件)通常是全缓冲的。

2017-07-11 01:14:39 548

转载 Linux系统--栈帧详解

一、 什么是栈帧?    什么是栈帧,相信很多从事C编程的童鞋还是没有搞明白,首先引用百度百科的经典解释:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。”。    实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关信息的记录单元。也许这样感觉更复杂了,好吧,让我们从栈开始来理解什么是栈帧...二、 栈(用户栈和内核

2017-07-09 23:51:53 1997

转载 linux开发--dup和dup2函数解析

一 理论介绍:1.1 文件描述符在内核中数据结构         在具体说dup/dup2之前,我认为有必要先了解一下文件描述符在内核中的形态。一个进程在此存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2), 0与进程的标准输入相关联,1与进程的标准输出相关联,2与进程的标准错误输出相关联,一个进程当前有哪些打开的文

2017-07-05 15:43:01 491

转载 Linux开发--IO多路复用之epoll总结

1、基本知识  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口  epoll操作过程需要三个接口,分别如下:#inclu

2017-06-28 00:21:01 540

转载 Linux系统--ELF文件之可重定位文件(Relocatable file)解析

Linux下ELF文件类型分为以下几种:    1、可重定位文件,例如SimpleSection.o;    2、可执行文件,例如/bin/bash;    3、共享目标文件,例如/lib/libc.so。    本文章中,我们会使用objdump,readelf,hexdump,nm等来分析一个linux中可重定位文件SimpleSection.o。

2017-06-26 09:53:13 5055

转载 Linux系统--ELF文件之可执行文件(Executable file)解析

Linux下ELF文件类型分为以下几种:    1、可重定位文件,例如SimpleSection.o;    2、可执行文件,例如/bin/bash;    3、共享目标文件,例如/lib/libc.so。    在Linux 可重定位文件 ELF结构一文中,我们已经分析了可重定位文件ELF结构。本文分析可执行文件的ELF结构。   

2017-06-26 09:36:09 3744

原创 Linux开发--时序竞态与解决办法

一、信号引起的竞态    竞态是指设备或系统出现不恰当的执行时序,而得到不正确的结果,由于时间片,或其他因素,导致该到达并响应的信号没有被响应,这就是由信号引起的竞态。   假设我们要写一个sleep函数,其中利用到了信号,编写的过程如下:   1.注册一个信号signal(SIGALRM,handler)。接收内核给出的一个信号。   2.调用alarm()函数。   3.p

2017-06-14 01:29:34 1414

转载 Linux系统--时间戳计数器TSC

TSC 是时间戳计数器的缩写,它是 Pentium 兼容处理器中的一个计数器,它记录自启动以来处理器消耗的时钟周期数。在每个时钟到来时,该计数器自动加一。    因为 TSC 随着处理器周期速率的变化而变化,所以它提供了非常高的精确度。它经常被用来分析和检测代码。TSC 的值可以通过 rdtsc 指令来读取。TSC 的节拍还可以转换为秒,转换方法是将其除以 CPU 的时钟速率(可以从内核变

2017-06-07 21:27:13 7592

转载 Linux系统--awk命令

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息awk处理过程: 依次对每一行进行处理,然后输出awk命令形式:awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 va

2017-06-01 14:50:51 246

转载 Linux系统--从malloc中窥探Linux内存分配策略

转载自: http://www.cnblogs.com/cherishui/p/4208858.html    malloc函数是C/C++中常用内存分配库函数,本篇文章将以Linux平台上的malloc为剖析对象,深入了解分配一块内存的旅程。malloc入门     使用malloc,需要包含头文件 stdlib.h ,函数原型如下:      extern void

2017-05-27 11:26:58 3257 1

原创 Linux开发--mmap映射/dev/mem内存

/dev/mem是linux下的一个字符设备, 源文件是kernel/drivers/char/mem.c, 这个设备文件是专门用来读写物理地址用的。里面的内容是所有物理内存的地址以及内容信息。通常只有root用户对其有读写权限。    利用mmap和/dev/mem建立起直接读写系统物理内存的渠道。利用/dev/mem和mmap导出系统物理地址,免去了用户虚拟地址到内核逻辑地址的繁琐拷贝

2017-05-17 16:21:58 5653 1

转载 Linux系统--DIR,dirent,stat等结构体详解

最近在看Linux下文件操作相关章节,遇到了这么几个结构体,被搞的晕乎乎的,今日有空,仔细研究了一下,受益匪浅。首先说说DIR这一结构体,以下为DIR结构体的定义:struct __dirstream      {       void *__fd;        char *__data;        int __entry_da

2017-05-14 01:39:38 297

转载 Linux开发--多线程中的信号处理

(转载自: 点击打开链接)  在linux下写服务器,处理信号在所难免。在多线程和单线程中信号的处理还是有点不同的。参考:http://maxim.int.ru/bookshelf/PthreadsProgram/htm/r_40.htmlhttp://aboocool.blog.51cto.com/3189391/626675  在linux下,每个进程都

2017-05-12 15:29:24 366

转载 Linux开发--使用Memory barrier实现无锁环形缓冲区

一 说明    涉及到并发编程中较底层的memory barrier相关知识,本人水平有限,在此不展开讲述,读者自行查阅。二 代码    Linux内核中,实现了一个无锁(只有一个读线程和一个写线程时)环形缓冲区 kfifo 使用到了 Memory barrier,实现源码如下:/* * A simple kernel FIFO implementation. * *

2017-05-05 15:12:37 477

转载 Linux开发--守护进程的创建

1 简介    守护进程是在后台运行不受终端控制的进程,通常情况下守护进程在系统启动时自动运行,用户关闭终端窗口或注销也不会影响守护进程的运行,只能kill掉。守护进程的名称通常以d结尾,比如sshd、xinetd、crond等    实际上一般的进程(前后台) 在关闭终端窗口后,会收到 SIGHUP 信号导致中断,可以使用 nohup command args > /

2017-05-01 14:26:36 239

转载 Linux开发--探讨将标准输入输出及错误重定向到/dev/null

Q: 我使用了如下代码将stdin、stdout、stderr重定向到/dev/null freopen( "/dev/null", "w", stdout ); freopen( "/dev/null", "w", stderr ); freopen( "/dev/null", "r", stdin ); 这样做正确吗,是否使用"w+"或者"a"更正确一些。在很多代码中是

2017-05-01 10:58:49 2912

原创 Linux系统--常用压缩/解压缩命令总结

Linux实际使用中,特别是命令行模式下为了方便文件的传输,常常对多个文件或目录进行解压,下面对几种常见命令的常用格式进行简要总结1 tar命令    实际上tar是归档命令,不过其可以自动调用压缩命令对归档文件进一步压缩(详细信息不展开),常见的压缩后的格式为.tar.gz和.tar.bz2,实际上其内部分别调用gzip命令和bzip2命令对归档文件(.tar)进行压缩所得。· 压缩

2017-04-07 10:50:56 594

原创 macOS--macOS下NFS服务器禁止挂载(mount)问题

说明: Linux版本为ubuntu 14.04 LTS, 具体如下:    安装好nfs服务器端(nfs-kernel-server),配置文件(/etc/exports)修改如下:    客户端使用mount进行挂载,出现如下错误:    但在Linux上测试正常:    内容与服务器端共享文件夹一致:    所以问题出在Mac上(这

2017-04-06 00:42:54 8864 1

原创 Linux系统--进程地址空间之存储器区域

上篇文章简单介绍了虚拟地址及其页面的知识,本篇更进一步概述页面的分类。    Linux系统内核将具有某些相同特征(例如读写权限)的页组织成块(blocks)。这些块叫做存储器区域(memory regions),段(segments),或者映射(mappings),对进程而言,可见的存储器区域主要有:    ·文本段(text segment),存储进程的代码,字符串,常量和一些读的数据

2017-03-21 10:25:22 544

原创 Linux系统--进程地址空间之虚拟地址空间

Linux系统,支持物理内存虚拟化,即进程并不直接在真实物理地址上寻址,而是由Linux内核为每一进程维护了一个特殊的虚拟地址空间(virtual address space)。这个地址空间是线性的,从0开始寻址,到某个最大值(不同操作系统或不同位数的系统可能不一样)。    虚拟地址空间由许多页(page)组成。典型的页大小是4096 bytes(4K, 32位系统)和8192byt

2017-03-20 20:58:01 304

原创 Linux开发--inotify事件机制

Inotify是一种文件变化通知机制,Linux内核从2.6.13开始引入。 在BSD和Mac OS系统中比较有名的是kqueue,它可以高效地实时跟踪Linux文件系统的变化。近些年来,以fsnotify作为后端,几乎所有的主流Linux发行版都支持Inotify机制。 如何知道你的Linux内核是否支持Inotify机制呢?很简单,执行下面这条命令: grep -r

2017-03-09 09:34:30 411

原创 架构模式--C++类模板实现事件触发机制

//带一个参数的事件触发器templateclass CEvent{private: typedef void (*Handle)(PTR);public: CEvent(Handle handle) { _handleVec.push_back(handle); } CEvent(){

2017-03-09 09:02:13 2218

原创 linux系统--mount 挂载访问windows共享文件夹

命令大致如下:mount -t cifs  //10.10.105.222/Linux/ /home/jiguochao/share/Linux/ -o username=jiguochao,password=******,domain=combatelecom.com,iocharset=utf8,nounix,noserverino其中红色部分为Windows相关需要修改的,绿

2017-01-20 15:40:07 450

原创 C++注意事项--02 函数指针用于带默认参数的函数

我们不能在函数指针中使用函数参数的默认值。这是 C++ 语言的限制:参数默认值只能使用在直接地函数调用中。当使用函数指针取其地址的时候,默认参数是不可见的!

2016-04-21 19:41:34 4505 1

转载 C++11新语法--01 Lambda表达式

C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。Lambda的语法形式如下: [函数对象参数] (操作符重载函数参数) mutable或exception声明 ->返回值类型 {函数体}        可以看到,Lambda主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable或exception声明、->返回值类型、{函数体}。下面分别

2016-04-19 11:01:00 291

原创 Qt学习记录--05 函数指针以及类函数指针用于Qt信号槽

一 函数指针:        顾名思义,函数指针即指向函数之指针,它与其他普通类型指针一样,所占内存为4个字节(32位系统)。所不同的是其内部存储了函数的地址而非数据地址,函数指针可以实现对参数类型、参数顺序、返回值都相同的函数进行封装,是多态的一种实现方式。        其一般的使用非常简单,假如返回值为int类型,入参有两个从左到右分别为char*和int,那么声明此类函数指针如下:

2016-04-19 09:36:07 8046 2

原创 编写高质量的C++代码--01 减少文件之间的编译依赖

一 概述:        在实际来发过程中,经验略少的开发者经常遇到这样的问题:只对一个头文件中的定义进行了简单的修改,却导致很多文件的重新编译,浪费了大量的时间。这种使人厌烦的问题是由于那些文件依赖了(#include)你修改的头文件,当然,依赖是迟早的事,但是有什么好的解决办法减少没必要的编译动作呢?下面进行讲述。最根本的出发点是尽量避免在.h文件中包含(#include)其他的.h文

2016-04-18 16:41:38 1282

原创 Qt学习记录--04 Qt的对话框介绍

一 引言:        熟悉win32(MFC)的小伙伴们会知道, 对话框分为模态对话框和非模态对话框,他们的明显差异是: 模态对话框在弹出后,会阻塞同一应用程序中其它窗体的输入,即无法获取鼠标和键盘等响应。模态对话框很常见,比如记事本的“打开文件”功能。当“打开文件”对话框弹出后,我们无法对此外的窗口进行操作的。而非模态对话框在弹出后,其他窗体依旧可以获取响应。例如记事本的“查找”对话框,

2016-04-17 22:11:30 505

原创 Qt学习记录--03 Qt的信号槽的使用

一 前言:       上篇文章中对Qt的信号槽进制作了简要介绍并对比了Qt5与Qt4中的差异,下面将通过实际代码举例说明信号槽的使用,谢谢支持。二 代码:        为了代码简介(少写代码~),笔者使用UI界面,如下:                                                       下面是代码:// widget

2016-04-16 20:27:54 432

原创 Qt学习记录--02 Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)

一 闲谈:        熟悉Window下编程的小伙伴们,对其消息机制并不陌生, 话说:一切皆消息。它可以很方便实现不同窗体之间的通信,然而MFC库将很多底层的消息都屏蔽了,尽管使用户更加方便、简易地处理消息,但也让人特别是没有Win32编程基的人感到迷茫,不是为何,笔者也是深受其害的。        详细描述就不在此展开,感兴趣的请查阅浩瀚如海的资料。。。二 简要介绍:

2016-04-16 18:56:01 2685

转载 Qt学习记录--01 Qt的model/view架构介绍

一 引入:        有时,我们的系统需要显示大量数据,比如从数据库中读取数据,以自己的方式显示在自己的应用程序的界面中。早期的 Qt 要实现这个功能,需要定义一个组件,在这个组件中保存一个数据对象,比如一个列表。我们对这个列表进行查找、插入等的操作,或者把修改的地方写回,然后刷新组件进行显示。这个思路很简单,也很清晰,但是对于大型程序,这种设计就显得苍白无力。比如,在一个大型系统中,

2016-04-14 16:50:15 199

原创 C++ transfrom的使用

1 定义: 假设你已知,  自补2 用法下面代码简要说明了2种使用方法: a. 将容器的元素当做入参b. 用容器的元素调用其成员函数3 代码实现#include #include #include #include //!< for transfrom function#include //!< for mem_fun function

2016-04-14 02:41:37 1191

MediaInfo_GUI_18.08.1_Windows

MediaInfo 能轻松的读取音视频文件的编码和标签信息。支持多种格式的多媒体文件: Matroska, OGG (包括 OGM) MPEG-1 (包括 VCD) MPEG-2 (包括 DVD, SVCD) MPEG-4 (包括 iTunes M4A) Quicktime RealMedia WindowsMedia (包括 WMV, WMA) Microsoft RIFF (包括 AVI, WAV) 纯声音格式 (AC3, DTS, AAC, AU, AIFF…)

2019-04-08

LogViewer Pro 2.3.0官方版+注册机

LogViewer 2.3.0官网版+注册机,打开注册机,输入注册者,点击Generate,然后选择LogViewer Pro安装位置,自动生成Key.txt。或详见压缩包内的破解说明

2018-04-30

Linux 多线程服务端编程:使用 muduo C++ 网络库(陈硕)

陈硕写的Linux 多线程服务端编程:使用 muduo C++ 网络库

2018-04-06

WinRAR 5.50 无广告官方版+破解工具

WinRAR 5.50 最新官方无广告版,外加破解工具 WinRAR 5.50 最新官方无广告版,外加破解工具 WinRAR 5.50 最新官方无广告版,外加破解工具

2017-09-07

减少文件之间的编译依赖

讲述了在编写C++过程中,如何减少文件之间的编译依赖

2016-04-18

Ubuntu 15.10安装部署Swift开发环境

详细介绍了在Ubuntu 15.10下安装部署Swift开发环境

2016-04-11

susan算法的详细介绍

关于susan算法的详细介绍,看后你会恍然大悟

2013-12-10

空空如也

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

TA关注的人

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