自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

frank_jiang的专栏

让总结成为一种习惯

转载 C语言中移位操作

先要了解一下C语言里所有的位运算都是指二进制数的位运算。即使输入的是十进制的数,在内存中也是存储为二进制形式。 “<<”用法: 格式是:a<<m,a和m必须是整型表达式,要求m>=0。 功能:将整型数a按二进制位向左移动m位,高位移出后,低位补0。 “>>...

2019-07-25 18:19:06 5583 1

原创 Linux内核事件通知链

Linux内核事件通知链 一、概念: 大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求,也即让某个子系统在发生某个事件时通知其它的子系统,Linux内核提供了通知链的机制。通知链表只能够在内核的子系统之间使用,而不能够在内核与用户空间之间进行事件...

2019-06-21 14:11:47 369 0

转载 Linux slab 分配器剖析

Linux slab 分配器剖析 了解 Linux 内存管理的方式 动态内存管理 内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能: 最小化管理内存所需的时间 最大化用于一般应用的可用内存(最小化管理开销) 内存管理实际上是一种...

2019-06-21 13:33:23 81 0

转载 Linux写时拷贝(COW)

COW技术初窥: 在Linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了“写时复制“技术,也就是只有进程空间的各段的内容要发生变化时,才会将父进程的内容复制一份给子进程。 那么子进程的物理空间没有代码,怎么去...

2019-05-30 17:25:21 444 0

原创 多进程引用动态链接库中的全局变量问题

多进程引用动态链接库中的全局变量问题 现象描述: 前提:存在一个动态库libvlan.so,存在一个应用console。 做法:在console中调用libvlan.so中的两个APIs,分别是设置和获取动态库中一个全局变量的值。 结果:在console中的操作没有问题,设置和获取都正...

2019-05-23 16:37:09 1324 0

转载 linux内核中的IS_ERR()、PTR_ERR()和ERR_PTR()

linux内核中的IS_ERR()、PTR_ERR()和ERR_PTR() 在看内核源码的时候,经常会遇到IS_ERR,比如在linux/arch/arm/kernel/sys_arm.c中 asmlinkage int sys_execve(char __user *filenamei...

2019-05-23 16:12:40 209 0

转载 automake,autoconf使用详解

作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了. 在本文中,将给大家介绍如何使用autoconf和automake...

2019-03-29 18:27:36 188 0

原创 使用shell转换Mac Address

shell脚本中变量截取的应用实例: 将MAC Address 由0123456789abc转换成12:34:56:78:9a:bc格式。 #!/bin/bash #! change MAC address in mac_list.txt from 0123456789abc to 12:3...

2019-01-11 18:22:07 453 0

原创 C语言函数隐式声明——implicit declaration warning

implicit declaration of function——函数隐式声明警告 原因: 1、该函数未被声明,但却被调用了,此时gcc会报这样的警告信息。 2、(网友总结)该函数所在源文件没有被编译为.o二进制文件。 解决办法: 1、在调用之前先声明这个函数,一般使用extern关键字(该...

2018-12-28 14:24:48 1920 0

转载 C语言函数隐式声明(2)

1 什么是C语言的隐式函数声明 在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下面是一个例子: int main(int argc, char** argv) {     double x = any_na...

2018-12-27 19:28:15 211 0

转载 C语言函数隐式声明(1)

这段时间,在看中心后台服务软件源码时发现,有很多自定义函数未经声明却能在主程序中被调用,主程序中没有包括上述函数的头文件,我在各个目录中也找不到上述函数的头文件。这就奇怪了,连使用标准库函数printf()都要包括标准输入输出头文件&lt;stdio.h&gt;,何况是自定义函数?...

2018-12-27 19:24:17 1747 0

原创 GCC 编译报错——suggest parentheses around comparison in operand of

warning: suggest parentheses around comparison in operand of ‘&amp;’ [-Wparentheses] 该警告希望你在&amp;(逻辑与)表达式左右加上括号。有的时候&amp;&amp;(逻辑且)少...

2018-12-25 09:29:30 1696 0

转载 第一次有人把5G解释的这么清楚

这一切,要从一个“神奇的公式”说起,就是这个公式!   还记得这个公式的,请骄傲地为自己鼓个掌, 如果不记得,或是看不懂,也没关系,“一个科普”解释一下。   就是这个超简单的公式,蕴含了我们无线通信技术的博大精深,无论是往事随风的1G、2G、3G,还是意气风发的4G、5G,说来...

2018-12-18 20:28:22 15065 7

转载 ctrl+c,ctrl+d,ctrl+z在linux程序中意义和区别

ctrl+c,ctrl+d,ctrl+z在linux程序中意义和区别 ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.   ctrl+c是强制中断程序的执行,进程已经终止。   ctrl+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用...

2018-11-22 15:02:51 144 0

原创 在shell中使用sed

如果有一个abc.txt文件,内容如下: $cat abc.txt aaa bbb BATBUSINESSTYPE, INSIDEID--) ONLINE; INSIDEID--) ONLINE ccc ddd eee fff 如果要删除ddd,那么脚本可以这样写: sed -i ...

2018-08-24 18:26:35 821 0

原创 shell脚本中判断上一个命令是否执行成功

shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。 结合if-else语句实现判断上一个命令是否执行成功。 经过验证,该方法也适用于make命令,并不仅仅限于shell 命令。 示例如下: if [...

2018-08-24 18:19:42 14195 1

原创 shell 脚本中双引号、单引号、反引号的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iamlaosong/article/details/54728393 最近要编个shell脚本处理数据,需要检测数据文件是否存在,文件名中包含日期,所以需要生成最近几天的日期,以便检测文件是否...

2018-08-24 18:16:20 976 0

转载 shell脚本基本语法

转载自:http://www.92csz.com/study/linux/14.htm 终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要。下面笔者就带你正式进入shell脚本的世界吧。 到现在为止...

2018-08-24 18:06:59 3420 0

转载 makefile中的shell调用---注意事项

$$:在makefile中会被替换成一个$。     相关资料是这么描述的:makefile中变量在声明时需要赋予初值,在使用时,需要在使用的变量前加"$"符号,但是最好使用"()"或者"{}"将变量包括起来。如果想使用真实的"...

2018-08-15 18:14:38 3981 1

转载 802.1ag CFM/802.3ah EFM OAM/Y.1731 ETH OAM学习笔记

相关协议:1)IEEE 802.1ag 连通性故障管理(CFM:Connectivity Fault Management)2)IEEE 802.3ah 第一英里的以太网(EFM:Ethernet in the First Mile),其中第57章的以太网OAM3)ITU-T Y.1731 以太网...

2018-06-06 15:45:58 1427 0

转载 RSA算法和RSA数字签名算法

一、引言 随着网络技术的飞速发展,信息安全性已成为亟待解决的问题。公钥密码体制中,解密和加密密钥不同,解密和加密可分离,通信双方无须事先交换密钥就可建立起保密通信,较好地解决了传统密码体制在网络通信中出现的问题。另外,随着电子商务的发展,网络上资金的电子交换日益频繁,如何防止信息的伪造和欺骗也成为...

2018-03-07 15:47:49 19915 3

转载 数字签名是什么

今天,我读到一篇好文章。 它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。 我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一...

2018-03-07 13:07:06 293 0

转载 字节序(byte order)和位序(bit order)

字节序(byte order)和位序(bit order)  在网络编程中经常会提到网络字节序和主机序,也就是说当一个对象由多个字节组成的时候需要注意对象的多个字节在内存中的顺序。   以前我也基本只了解过字节序,但是有一天当我看到ip.h中对IP头部结构体struct iphdr的定义时...

2018-01-10 20:05:01 2422 0

转载 RPC介绍

简介 RPC(Remote Procedure Call,远程过程调用)是建立在Socket之上的,出于一种类比的愿望,在一台机器上运行的主程序,可以调用另一台机器上准备好的子程序,就像LPC(本地过程调用)。越底层,代码越复杂、灵活性越高、效率越高;越上层,抽象封装的越好、代码越简单、效率越差...

2017-10-27 18:08:53 996 0

转载 clnt_call(3) - Linux man page

Name rpc - library routines for remote procedure calls Synopsis And Description These routines allow C programs to make procedure calls on o...

2017-10-23 12:38:50 747 0

原创 About AF_LOCAL in Linux

About AF_LOCAL in Linux 一、Unix domain socket     Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字...

2017-08-15 20:49:11 2766 0

原创 AF_NetLink结构体及例程

AF_NetLink结构体 目录 一、AF_NETLINK结构体基础... 1 二、 netlink 内核数据结构、常用宏及函数... 4 netlink消息类型:... 4 netlink常用宏:... 4 三、例二:读取内核路由信息... 5 四、例三:自定义通信协议... 6     一、A...

2017-08-13 22:18:18 1436 0

原创 About AF_NETLINK in Linux Socket

About AF_NETLINK in Linux Socket 由于开发和维护内核的复杂性,只把最为关键同时对性能要求最高的代码放进内核中。其他的诸如GUI,管理和控制代码,通常放在用户空间运行。这种将实现分离在内核和用户空间的思想在Linux中非常常见。现在的问题是内核代码和用户代码如何交互...

2017-08-13 22:14:16 2539 0

转载 Linux/Unix环境下的make和makefile详解

  Linux/Unix环境下的make和makefile详解              无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不 管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利 用make工具,我们可以将大型...

2017-07-11 19:42:32 695 0

原创 有关虚拟专用局域网业务VPLS的总结

****************************************************************************************************** ********************LDP摘要:Label Distribution P...

2017-06-25 11:59:36 2007 0

原创 Contiki中MAC层与RDC层

原英文文章:https://github.com/contiki-os/contiki/wiki/Change-mac-or-radio-duty-cycling-protocols 在Contiki中,MAC层源码位于core\net\mac目录下。        在低功耗网络中,无...

2017-01-16 16:55:40 1411 0

翻译 The ContikiMAC Radio Duty Cycling Protocol

The ContikiMAC Radio DutyCycling Protocol RDC机制之ContikiMAC协议   目录 摘要... 2 1 介绍... 2 2 ContikiMAC.. 3 2.1 ContikiMAC时序... 4 2.2 包检测和快速睡眠.....

2017-01-16 16:51:56 527 0

翻译 RFC 6719中文版: The Minimum Rank with Hysteresis Objective Function

RFC 6719 The Minimum Rank with Hysteresis ObjectiveFunction RFC 6719 具有磁滞特性的基于最低排名的一种目标函数   概述 RPL通过目标函数建立路由,该目标函数可以优化或是约束它所选择和使用的路由。本规范描述的MRHOF,...

2017-01-04 20:42:36 759 0

转载 C++中引用(&)的用法和应用实例

对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式...

2016-10-29 10:54:10 304 0

转载 C++ 虚函数&纯虚函数&抽象类&接口&虚基类

1. 多态 在面向对象语言中,接口的多种不同实现方式即为多态。多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数。 多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的。 多态可以让父类的指针有“多种形态”,这是一...

2016-10-26 19:39:53 420 0

原创 C语言中关于字符数组和指针数组

做笔试题目的时候,碰到字符数组初始化的问题,居然一下子懵了。 在C语言中存储字符串有两种方法:字符数组和字符串指针 这两者的存储位置不同,首先字符数组(局部变量)是保存在栈中的;指针指向字符串时,则包括了两部分,指针本身,存储在栈中(局部指针变量),字符串本身存储在代码段(GCC中是这样)。 基于...

2016-10-21 20:04:27 1117 0

原创 C++中虚析构函数

虚函数、析构函数和虚析构函数,以及基类指针指向子类对象,这些有点让人迷惑。 首先虚函数是为了实现动态多态性而存在的,用基类指针或是引用指向子类对象时,调用的是子类中的虚函数,而不是基类中的;如果不是虚函数,那么进行类型分割,将子类转变成基类对象,此时执行的就是基类中的函数。(如下面第二段代码所示)...

2016-10-18 11:46:25 303 0

原创 C语言之strcat函数

原本以为很简单的一个例子,结果让我郁闷了一个上午 虽然这个知识点也懂,但还是在实践中犯了错,一个上午的时间,多么痛的领悟啊

2016-08-23 14:13:01 744 0

原创 C语言之优先级、结合性与自增运算

     优先级、结合性这些概念在初学的时候并没有放在心上,今天又碰到这个问题,查了不少资料,再次做个总结。   在标准C语言的文档里,对操作符的结合性并没有做出非常清楚的解释。一个满分的回答是:它是仲裁者,在几个操作符具有相同的优先级时决定先执行哪一个。 每个操作符拥有某一级别的优先级,同...

2016-08-18 21:08:53 2806 1

转载 Linux下突破限制实现高并发量服务器

Linux下突破限制实现高并发量服务器 1、修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发 数 量都要受到系统对用户单一进程同时可打开文件数量的 限制(这是因为系统为每个TCP连接都要创 建一个socke...

2016-07-26 20:32:54 4989 0

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