自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 vim 可视化模式(visual模式)

为了便于选取文本,VIM 引入了可视(Visual)模式。 可以使用以下三种模式: 用 v 命令进入的字符可视化模式(Characterwise visual mode)。文本选择是以字符为单位的。 用 V 命令进入的行可视化模式(Linewise visual mode)。文本选择是以行为单位...

2020-02-02 10:29:16 114 0

转载 看懂UML类图

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线条、箭头代表什么意思后,也就足够应对 日常的工作和交流; 同时,我们应该能将类图所表达的含义和最终的代码对应起来; 有了这些知识,看后面章节的设计模式结构图就没有什么问题了; 从一个示例开始 请看以下这...

2019-08-11 11:08:28 56 0

转载 从IaaS到FaaS—— Serverless架构的前世今生

转自亚马逊AWS官方博客:https://aws.amazon.com/cn/blogs/china/iaas-faas-serverless/ 今天大多数公司在开发应用程序并将其部署在服务器上的时候,无论是选择公有云还是私有的数据中心,都需要提前了解究竟需要多少台服务器、多大容量的存储和数据...

2019-02-15 21:39:18 179 0

原创 Open vSwitch 出口流量QoS实现

Open vSwitch 出口流量QoS实现 OVS中可以通过创建对应出端口的队列并配置队列最大/最小速率来实现qos操作。以下我们通过mininet中一个最简单的拓扑(一个交换机+两台主机,mininet的默认拓扑,直接运行sudo mn即可)来说明一下这个qos操作。   如图,交换机...

2018-12-29 14:21:17 1246 2

原创 objdump 目标文件分析

objdump是用来查看目标文件或者可执行的目标文件的构成的gcc工具。 1、常用参数说明 -f:显示文件头信息 -d:从objfile中反汇编那些特定指令机器码的section -D:反汇编所有section -h:显示目标文件各个section的头部摘要信息 -x:显示所有可用的头信息,包括...

2018-11-23 22:31:41 386 0

原创 Linux 用ssh远程登录及scp传输文件

ssh ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。 语法 scp (选项) 远程主机 常用选项 -1:强制使用ssh协议版本1 -2:强制使用ssh协议版本2 -4:强制使用IPv4地址 -6:强制使用IPv6地址 -...

2018-05-23 20:33:36 4346 0

原创 ubuntu 上安装使用SSH

1、chinese语言包安装 先打开 System Settings –> Language Support(第一次打开有可能会提醒你 Language Support 没有安装完全什么的,点击授权安装就行) 点击Install/Remove Languages…,选中Chinese...

2018-05-11 10:05:37 4412 0

原创 Linux文件连接与ln命令

ln命令用来为文件创建连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用”-s”选项。要注意这个s代表的是“symbolic”而不是“soft”,虽然符号链接又被称为软连接,但这可能是为了与硬链接相对应。注意:符号链接文件不是一个独立的文件,它的许多属性依赖...

2018-05-08 20:09:03 430 0

原创 C/C++ 中利用debug宏定义打开/关闭调试输出

debug宏作为调试开关在写程序时,为了调试,经常需要加一些输出语句,等调试完成又得注释掉,如果下次还需要调试还得解注释,十分费时费力,为了解决这个麻烦,可以定义一个debug宏作为调试输出的开关。如下面代码所示:#include <stdio.h>int main(void) { ...

2018-05-06 20:26:00 7515 0

原创 C/C++ 可变参数宏与__VA_ARGS__ 宏

在GNU C中,从C99开始,宏可以接受可变数目的参数,就象可变参数函数一样。和函数一样,宏也用三个点…来表示可变参数__VA_ARGS__ 宏__VA_ARGS__ 宏用来表示可变参数的内容,简单来说就是将左边宏中 … 的内容原样抄写在右边__VA_ARGS__ 所在的位置。如下例代码:#in...

2018-05-02 19:29:39 5150 0

转载 "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file ...

2018-04-30 13:47:06 300 0

原创 C/C++可变参数函数

可变参数的函数,即函数的参数个数和参数类型不完全确定的函数。这类函数最常见的就是printf、scanf函数。在C/C++中,为了通知编译器函数有可变参数,必须以三个点结束该函数的声明。例如://printf函数的声明 int printf(const char * _Format, ...)...

2018-04-28 19:17:46 304 0

原创 cout 输出 uint8_t 整形值

在C++中我们一般用std::cout输出到屏幕,但如果直接用cout输出uint8_t类型的无符号整形数的话却不能得到我们想到的整形值,比如下例代码:#include <iostream> #include <stdint.h> int main(){ uint8...

2018-04-25 19:33:56 4130 0

原创 C语言字符串与C++string对象的相互转换

C语言中字符串以字符数组的形式存储,以’\0’结尾,而C++中引入了string类作为字符串类型,它们之间可以通过以下方法相互转换:C语言字符串=>C++string对象C++中,string类能够自动将C 语言字符串转换成string对象#include <iostream> ...

2018-04-23 20:51:28 3683 0

原创 动态规划解二维多重背包问题

背包问题 背包问题是一个很经典的算法问题,根据其复杂程度不同又可分为01背包问题、完全背包问题、多重背包问题、二维背包问题等等。本文讲一讲二维多重背包问题的动态规划解法。 01背包问题 有N件物品和一个容量为V的背包。第i件物品的体积是a[i],价值是w[i]。求解将哪些物品装入背包可使...

2018-03-13 22:36:45 7758 2

原创 C++ 标准模板库STL中map用法介绍

本文所介绍的std::map用法基于C++11,std::map定义于头文件&lt;map&gt;中,其定义如下:template&lt; class Key, class T, class Compare = std::less&lt;Ke...

2018-02-12 17:10:25 1889 0

原创 C++ 标准模板库STL中set用法介绍

本文所介绍的std::set用法基于C++11,std::set定义于头文件&lt;set&gt;中,其定义如下:template&lt;     class Key,     class Compare = std::less&lt;Key&gt;,   ...

2018-02-09 21:02:11 740 0

原创 C++ 标准模板库STL中vector用法介绍

本文所介绍的std::vector用法基于C++11,std::vector定义于头文件&lt;vector&gt;中,其定义如下:template&lt; class T, class Allocator = std::allocator&lt;T...

2018-02-09 20:49:00 627 0

转载 c/c++中的inf与nan

inf :infinity (linux) 等同于 #INF:infinity (windows) nan :not a number 等同于 #IND:indeterminate (windows) 注意: inf一般是因为得到的数值,超出浮点数的表示范围(溢出,即阶码部分超过其能表示的...

2018-01-23 19:01:21 17302 0

原创 leetcode689. Maximum Sum of 3 Non-Overlapping Subarrays

In a given array nums of positive integers, find three non-overlapping subarrays with maximum sum. Each subarray will be of size k, and we want to m...

2018-01-14 21:32:16 217 0

原创 getchar()、EOF和Ctrl+Z

当初学c语言的时候,都知道EOF是文件结束符,end of file的意思,一般通过EOF来标识输入或文件的结束(终端输入的话windows系统中是Ctrl+Z键,linux系统是Ctrl+D键),如上面那段代码所示,以前一直以为是不断读入终端输入的字符,一直到读到^Z为止,但现在发现却不是这么简...

2017-12-14 22:38:50 1128 0

原创 c语言转义字符

今天遇到一道题: 有以下程序: void main(){ char a, b, c, *p; a=’\’; b=’\xbc’; c=’\0xab’; p=”\0127”; printf(“%c %c %c %c\n”, a, b, c, *p); }...

2017-12-11 22:07:48 5498 0

原创 ubuntu16.04 安装 eclipse

安装Java JDK安装eclipse需要先安装 Java JDK,具体可以看这篇Ubuntu 16.04安装Java JDK下载eclipse安装器前往eclipse官网(https://www.eclipse.org/downloads/),根据系统类型下载。解压并运行其中的eclipse-i...

2017-11-13 14:47:30 3954 0

原创 Ubuntu 16.04安装Java JDK8

Java JDK在linux系统有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdk,oracle JDK既可以通过添加ppa源命令行安装,也可以去官网下载jdk压缩包安装。下面分别记录一下这三种安装方式的步骤。安装openjdk1、更新软件包列表: sudo apt-g...

2017-11-09 15:03:13 57071 4

原创 ubuntu 16.04 安装ibus中文输入法

1、chinese语言包安装先打开 System Settings –> Language Support(第一次打开有可能会提醒你 Language Support 没有安装完全什么的,点击授权安装就行)点击Install/Remove Languages…,选中Chinese(simpl...

2017-11-07 16:19:23 2254 0

原创 Ubuntu 14.04 升级到 Ubuntu 16.04

1、检查系统更新运行ubuntu的更新管理器(Software Updater)检查更新:点击 Install Now 更新需要更新的内容:有时候可能需要重启才能完成更新:重启完后再运行系统更新器检查下更新:这样就可以了2、升级系统在终端输入以下命令: sudo update-manager ...

2017-11-03 15:28:42 9526 2

原创 Linux 下修改socket接收缓冲区

在进行socket编程有时候可能需要修改下socket的接收缓冲区大小,这里可以使用 setsockopt 函数,但是如果需要修改的缓冲区很大(比如500MB),则还需要修改系统内核的TCP/IP参数,不然接收缓冲区大小会收到内核参数的限制,所以需要改两个地方。下面以把socket接收缓冲区修改为...

2017-10-19 19:16:58 6310 0

原创 Linux 内核运行参数修改——sysctl命令

sysctl命令被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/ip堆栈和虚拟内存系统的高级选项,用sysctl可以读取设置超过五百个系统变量。sysctl命令用法: sysctl [options] [variable[=value] …...

2017-10-16 20:50:40 9800 0

原创 Linux下 getsockopt/setsockopt 函数使用说明

getsockopt, setsockopt - 获取或设置socket套接字相关的选项函数使用函数原型: int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int sets...

2017-10-11 12:46:04 883 0

转载 vxlan 协议原理简介

1. vxlan 简介VXLAN 全称是 Virtual eXtensible Local Area Network,虚拟可扩展的局域网。它是一种 overlay 技术,通过三层的网络来搭建虚拟的二层网络。rfc7348 (参考资料1) 上的介绍是这样的: A framework for ov...

2017-10-09 19:42:49 12627 0

转载 linux 网络虚拟化:network namespace 简介

network namespace 是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自的网络栈信息。不管是虚拟机还是容器,运行的时候仿佛自己就在独立的网络中。这篇文章介绍 network namespace 的基本概念和用法,network namespace 是 linux 内核...

2017-10-05 22:56:03 4745 2

原创 malloc, calloc, realloc 使用及区别

堆空间malloc, calloc, realloc 函数分配的空间位于堆空间, C语言内存分布包括栈空间、堆空间、数据段(包括BSS段)、代码段。malloc函数原型: void* malloc (size_t size); 功能:请求系统动态分配size个字节的空间,如果分配成功则返回第一个...

2017-10-01 21:34:53 315 0

原创 ubuntu16.04 安装Sublime Text 3

1、安装Sublime Text 3可以前往sublime text的官网download界面(http://www.sublimetext.com/3)进行下载,这里提供了mac、windows、linux系统的下载,如下图所示。 ubuntu系统可以直接点击linux的64bit、32b...

2017-10-01 21:34:12 21721 0

转载 Sublime Text 3 快捷键汇总

Sublime Text 3常用快捷键 快捷键 作用 Ctrl+Shift+P 打开命令面板 Ctrl+/ 注释当前行 Ctrl+G 跳转到第几行 Ctrl+M 跳转到对应括号 Ctrl+R 前往 method Ctrl+F 查找内容 Ct...

2017-09-27 15:06:35 244 0

转载 Pthreads 多线程入门教程

Pthreads 是 IEEE(电子和电气工程师协会)委员会开发的一组线程接口,负责指定便携式操作系统接口(POSIX). Pthreads 中的 P 表示 POSIX,实际上,Pthreads 有时候也代表 POSIX 线程.前言本文档参考: https://computing.llnl.gov...

2017-09-14 21:33:44 461 0

原创 C/C++中的NULL与nullptr

C中的NULL在C语言中我们将NULL用作空指针之用,NULL在C语言中的定义如下:#define NULL ((void *)0)可以看到,C语言中NULL是一个void*指针,我们常用其来对指针变量进行初始化赋值或者作为返回类型为指针的函数的返回值(如函数执行失败时)等等。C++中的NU...

2017-09-09 15:23:40 1095 0

原创 eclipse 生成及使用C/C++静态库

生成静态库要在eclipse中生成一个静态库,需要先创建一个静态库项目,依次选择 File -> New -> C Project (或C++ Project),并在创建项目对话栏中选择 Static Library,如下图所示。创建静态库项目后,将源代码拷贝至项目文件夹下,刷新后直接...

2017-09-08 22:48:52 5226 0

原创 ubuntu 14.04 截屏快捷键

在windows系统下我们一般都习惯用QQ的截屏功能,直接俺Ctrl+Alt+A快捷键即可截屏,在ubuntu系统中也有类似的快捷键可以实现这类截取特定部分屏幕的功能,我们可以打开“System Settings”(系统设置)中的“keyboards”(键盘),在“Shortcus”(快捷键)一栏...

2017-09-08 21:49:00 19992 0

原创 cout格式化输出

在C语言中,我们一般用printf()函数来进行输出,通过输出字符串中的格式说明符(如%4.2d)可以很容易地格式化输出。而在C++中,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时也需要数据按我们指定的格式输出,比如以十六进制的形式输出一个整数等。有两种方法可以达到...

2017-09-03 19:12:16 8075 3

翻译 printf()输出格式

int printf ( const char * format, … ) 将格式化的数据打印到标准输出 printf()函数将上述函数定义中format指向的C字符串写到标准输出。如果format中包含了格式说明符(以%开头的子序列),则format之后的附加参数将被格式化并插入到字符串中代替对...

2017-09-02 23:25:55 8719 0

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