- 博客(125)
- 资源 (7)
- 收藏
- 关注
原创 C++多态总结
一、虚函数与多态1.如果将基类中的一个成员函数声明为虚函数(virtual),那么其子类中与该虚函数具有相同原型(返回类型相同、函数名相同、参数表相同、常属性相同)的成员函数就也成为虚函数, 并且和基类中的版本构成覆盖(override)关系。通过指向子类对象的基类指针,或者引用子类对象的基类引用,调用虚函数,实际被调用的将是子类中的覆盖版本。这种特性被称为多态。2.关于虚函数覆盖
2017-05-27 13:59:51
848
原创 sockaddr和sockaddr_in的区别
套接字编程需要指定套接字的地址作为参数,不同的协议族有不同的地址结构定义方式。这些地址结构通常以sockeaddr_开头,每一个协议族有一个唯一的后缀,例如对于以太网,其结构名称为sockaddr_in. 1.通用套接字数据结构 通用的套接字地址类型的定义如下,它可以在不同协议族之间进行强制转换。include struct sockaddr { unsi
2017-05-27 13:56:53
5981
原创 使用某类型是否用声明的思考
原因:由于看linux协议栈内核源码使遇到了如下情况:#ifndef _NET_NEIGHBOUR_H#define _NET_NEIGHBOUR_H#include /* * Generic neighbour manipulation * * Authors: * Pedro Roque * Alexey Kuznetsov * * Changes:
2017-04-06 13:17:48
600
原创 Python IDE(集成开发环境)
本文为大家推荐几款款不错的 Python IDE(集成开发环境),比较推荐 PyCharm,当然你可以根据自己的喜好来选择适合自己的 Python IDE。 PyCharmPyCharm 是由 JetBrains 打造的一款 Python IDE。PyCharm 具备一般 Python IDE 的功能,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本
2017-04-06 08:58:49
1849
原创 URL详解
一:URL举例就以下面这个URL为例,介绍下普通URL的各部分组成http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name从上面的URL可以看出,一个完整的URL包括以下几部分:1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。
2017-04-05 20:07:36
20670
原创 引用详解
引用型参数一个函数引用参数实际上就是调用者实参的别名。对该参数的修改将直接影响实参的值。1)通过函数引用型参数可以修改实参的值。2)通过向函数传递引用型参数,避免数据拷贝的开销。如果该函数不需要修改实参的值,那么最好使用常引用形式的形参,以防止在函数对实参进行意外的修改。3.引用型返回值1)不要从函数中返回对局部变量的引用。2)可以返回对全局变量、静态局部变量、实参
2017-03-22 09:26:08
756
原创 Linux内核 hlist_head/hlist_node结构解析
int fz_divisor;表示散列表fz_hash的容量,以及散列表桶的数目。内核中的定义:struct hlist_head { struct hlist_node *first;};struct hlist_node { struct hlist_node *next, **pprev;};这个数据结构与一般的hash-l
2017-03-07 17:51:23
2033
原创 网络名词汇总
#H HDLC:高级数据链路控制(High-Level Data Link Control或简称HDLC),是一个在同步网上传输 数据、面向比特的数据链路层协议,它是由国际标准化组织(ISO)根据IBM公司的SDLC(Synchronous Data Link Control)协议扩展开发而成的。
2017-02-27 10:12:29
928
原创 Ubuntu 输入正确的密码后,黑屏一闪,重新返回到登陆界面问题解决
一,问题描述:Ubuntu出现登陆界面后,选择用户名,输入密码,然后登陆画面消失,似乎要进入系统了;但很快,又出现了同样的用户登陆界面,再次选择用户名、输入密码,再次来到这个状态,形成一个死循环。二,解决办法:1.若是本地的虚拟机运行的服务:在登录界面Ctrl+Alt+F1进入命令行界面:先找到这个文件:/home/user/.xsession-errors打开这个文件
2017-02-08 14:05:56
15160
原创 由于编码问题引发的ODBC插入数据库中文错误
一:问题:用ODBC将字符数据插入数据库后,数据库中显示中文格式乱码,而英文格式完全正确,用ODBC进行查询操作完全正确。如下所示二:解决问题:查看编码方式是否统一。1.首先查看数据库分别是什么编码格式:2.查看插入的表格是什么格式:3.查看ODBC进行连接是的字符集。我的数据源配置文件显示如下:到目前为止,发现插入用和表
2017-02-07 15:06:53
8620
原创 二层交换机,三层交换机的区别
二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:(1) 当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;(2) 再去读取包头中的目的MAC地址,并在地址
2017-02-04 14:11:51
3202
原创 数据帧的产生
帧到底是由谁来产生的?网卡可以产生,交换机也可以产生。交换机产生的话是因为交换机之间需要一些协议来维护特定的功能,如STP,VTP而最重要的功能还是转发网卡(也就是主机)所产生的帧。追问那比如说,我的设备是这么连的:主机---路由器---交换机---外网。那网卡是在我计算机内的,也就是网卡直接跟路由器相连。那我要向外发送数据。网卡传给路由器的不是数据帧吗?可
2017-01-24 16:15:01
3640
转载 通过IP地址和子网掩码与运算计算相关地址
通过IP地址和子网掩码与运算计算相关地址 知道ip地址和子网掩码后可以算出: 1、 网络地址 2、 广播地址 3、 地址范围 4、 本网有几台主机 例1:下面例子IP地址为192·168·100·5 子网掩码是255·255·255·0。算出网络地址、广播地址、地址范围、主机数。 一)分步骤计算 1) 将IP地址和子网
2017-01-23 19:26:02
2725
转载 TCP:WireShark分析,序列号Seq和确认号Ack
转载自 http://blog.csdn.net/a19881029/article/details/38091243序列号为当前端成功发送的数据位数,确认号为当前端成功接收的数据位数,SYN标志位和FIN标志位也要占1位如果你正在读这篇文章,很可能你对TCP“非著名”的“三次握手”或者说“SYN,SYN/ACK,ACK”已经很熟悉了。不幸的是,对很多人来说,对TCP的
2017-01-17 13:27:53
6357
转载 shell getopts 用法
c语言里面有个getopt_long,可以获取用户在命令下的参数,然后根据参数进行不同的提示或者不同的执行。在shell中同样有这样的函数或者用法吧,在shell里面是getopts,也有一个getopt是一个比较老的。这次说getopts,我自己的一些用法和感悟。首先先来一个例子吧:[hello@Git shell]$ bash test.sh -a hellothis i
2017-01-13 16:40:45
494
原创 shell脚本中单引号和双引号
shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。(注意是所有,只是单引号本身不能够出现在其中)。 双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:$加变量名可以取变量的值反引号仍表示命令替换\$表示$的
2017-01-13 11:39:46
3968
转载 Linux Shell 之 Shell中的函数调用
说起函数调用,相信大家也不会陌生,然而对于初学Shell的我来说,Shell中函数调用方式却有点让我不太习惯,自己也走了不少的弯路,因为传递参数时出了一个很“自然”的错误,也让我吃了不少的苦头,所以总结一下Shell中函数的调用方法。一、Shell中函数的定义为了方便程序和管理和模块化并减少代码的重复,函数的确是一个好东西。而Shell中函数的定义有两种方法,如下:fu
2017-01-13 10:12:46
541
转载 Linux shell 的 test 命令用法详解
基本格式:test expressionexpression为test命令构造的表达式。这里expression是test命令可以理解的任何有效表达式,该简化格式将是读者可能会踫见的最常用格式返回值:test命令或者返回0(真) 或者返回1(假).test可理解的表达式类型分为四类: 表达式判断 字符串比较 数字比较 文件比较1)
2017-01-13 10:00:02
583
原创 /sys 文件系统下的目录结构
/sys 文件系统下的目录结构这个目彔其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记彔不核心相关的信息。 包括目前已加载的核心模块不核心侦测到的硬件装置信息等等。这个目彔同样丌占硬盘容量。/sys 下的目录结构是经过精心设计的:在 /sys/devices 下是所有设备的真实对象,包括如视频卡和以太网卡等真实的设备,也包括 ACPI 等不那么显而易见的真实设备、还
2017-01-12 19:37:53
776
转载 shell变量详解
1 shell变量基础shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,
2017-01-12 18:41:50
358
原创 Python系统性能信息模块psutil
通常linux系统的基础信息如内存、cpu等这些都是通过shell来获取。不过python的psutil模块把shell查看系统基础信息的功能都包装了下,使用更加简单,功能丰富。shell命令如下:物理内存total 值: free -m | grepMem | awk '{print $2}'物理内存used 值: free -m | grepMem | awk '{print
2017-01-11 15:53:36
2356
转载 Linux中通过/proc/stat等文件计算Cpu使用率
转自:http://blog.csdn.net/tenfyguo/article/details/7476306proc文件系统 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为内核与进程提供通信的接口。用户和应用程序可以通过/proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用
2017-01-11 11:57:42
1460
转载 Linux free命令详解
free total used free shared buffers cachedMem: 4149156 4130412 18744 0 13220 2720160-/+ buffers/cache: 1397032 2752124Sw
2017-01-11 11:15:45
953
原创 取得设备运行时间
#!/bin/bash#取得设备运行时间Time=$(cat /pro/uptime | cut -d '.' -f 1)RunDay=$(($Time/86400))RunHour=$(($Time%86400/3600))RunMinute=$(($Time%3600/60))RunSecond=$(($Time%60))RunTime=$(printf "%02d:%02d:%
2017-01-10 13:25:40
1828
转载 shell 中 &&和||的方法
Shell && 和 || shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? == 1 时,表示执行失败。 有时候,下一条命令依赖前一条命令是否执行成功。如:在成功地执行一条命令之后再执行另一条命令,或者在一条命令执行失败后再执行另一条命令等。shell 提供了 && 和 ||
2017-01-09 11:29:20
8549
原创 mpstate监控CPU详解
用法:它显示了系统中 CPU 的各种统计信息。–P 0 选项指示该命令显示所有 CPU 的统计信息,CPU从个数0开始,ALL为所有。 而不只是特定 CPU 的统计信息。参数 2 2 指示该命令每隔 2秒运行一次,共运行 2 次。 以上输出首先显示了所有 CPU 的合计指标,然后显示了每个 CPU 各自的指标。最后,在结尾处显示所有 CPU 的平均值。 含义:%user
2017-01-06 11:35:44
1946
转载 一份试卷引发的思索
作者:长短短链接:https://zhuanlan.zhihu.com/p/24216611来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。试 卷姓名________ 学号________ 首先我们来看这个,试卷的名字和编号填写,这个部分有“漏洞”吗?有学生的姓名和编号都写在这儿,没有做任何保护措施,因此,你只要偷看了某人的
2016-12-26 09:29:22
395
转载 ubuntu 安装mysql及目录位置
安装sudo apt-get install MySQL-server mysql-client查看安装端口情况sudo netstat -tap | grep mysql配置文件位置sudo vim /etc/mysql/my.cnf打开关闭服务/etc/init.d/mysql start/stop卸载 sudo apt-get auto
2016-12-23 17:42:58
4233
原创 mysql中触发器性能问题
一、问题背景:当数据库中某个告警表插入一条数据后,就要通过http协议通知web端,产生了一条告警信息。二、解决方案:在Mysql中使用触发器+lib_mysqludf_sys调用外部命令,即通过调用shell脚本来通知web端,产生了告警,让web对告警数据库进行事件查询。1.lib_mysqludf_sys简介mysql中没有执行外部命令的函数,要调用外部的命令,可以通过开
2016-12-23 17:20:14
5933
原创 linux C语言实现文件锁之flock
一:flock函数特点:1.flock只能加全局锁。2.当一个进程用flock给一个文件加锁时,用另一个进程再给这个文件加锁,它会阻塞或者也可以返回加锁失败(可以自己设置)。3.当给一个文件加fcntl的独占锁后,再给这个文件加flock的独占锁,其会进入阻塞状态。4.当给一个文件加flock的独占锁后,用fcntl去获取这个锁信息获取不到,再用fcntl仍然可以给文件加锁。5
2016-12-22 11:04:57
9999
1
原创 SVN命令详解
1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件svn add file例如:svn addtest.php(添加test.php)svn add *.php(添加当前
2016-12-21 10:47:36
701
转载 C++11 之 delete 和 default
1 特殊成员函数 设计一个类,没有成员函数 (member function),只有数据成员 (member data)class DataOnly {private: std::string strName; // member data int iData;};C++98 编译器会隐式的产生四个函数:缺省构造函数,析构函数,拷贝构造函
2016-12-20 18:50:56
541
转载 c++11中的using关键字
一般的using关键子我们都是用来声明当前文件的命名空间,比如标准库的命名空间std-> using namespace std;但在c++11中,它的用处还有几个 1:取代typedef ,2:让父类同名函数在子类中以重载方式使用以下是《深入理解c++11》的对1:的截图以下是自己的实现//--------------------------------------
2016-12-20 17:53:50
482
原创 C++11初始化列表与参数列表的作用
最近遇到了一个程序,一开始有些莫名其妙,最后经过思考、猜想、验证的过程,将其总结如下:首先先上代码:函数声明如下:class Controller{ using AnalysisManager = NST::analysis::AnalysisManager; using FiltrationManager = NST::filtration::Filtratio
2016-12-20 16:18:18
5487
原创 使用SVN问题总汇
1.使用SVN提示“工作副本已经锁定”的解决办法。更新或者提交前执行一下clean up。如果在当前目录执行该命令后,仍然提示锁定,就到上一层目录再执行下2....
2016-12-12 18:44:30
336
转载 CIFS与NFS
1、 CIFSMicrosoft推出SMB(server message block)后,进一步发展,使其扩展到Internet上,成为common internet file system。 CIFS采用C/S模式,基本网络协议:TCP/IP和IPX/SPX;两种资源访问模式: (1) share level security:所有用
2016-12-10 14:32:33
3147
1
原创 Linux 下设置环境变量
什么是环境变量 在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误。那么什么是环境变量?简单说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。 设置变量对于一般人最实用的功能就是: 不用拷贝某些dll文件到系统目录中了,而path
2016-12-07 15:25:43
510
原创 Makefile中的 = ?= := +=直接的区别
Makefile中在定义变量的时候,我们可以使用其它变量来构造变量的值,在Makefile中有两种方式来定义变量的值是=方式和:=方式。 在说明两者直接的不同时,先来说明下使用的变量。在Makefile中的定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字符串,在Makefile中执行的时候其会自动原模原样地展开在使用的地方。其与C/C++所不同的是,你可以在Makefile
2016-12-07 14:43:53
416
netfilter.pdf
2019-12-31
黑客与画家
2017-07-27
jperf Windows
2017-07-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人