7 frank_jb

尚未进行身份认证

向着代码前进

等级
TA的排名 1w+

C语言中移位操作

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

2019-07-25 18:19:06

Linux内核事件通知链

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

2019-06-21 14:11:47

Linux slab 分配器剖析

Linuxslab分配器剖析了解Linux内存管理的方式动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间 最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进行管理的算法,但是要花费更多时间来管理可用内存。也可...

2019-06-21 13:33:23

Linux写时拷贝(COW)

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

2019-05-30 17:25:21

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

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

2019-05-23 16:37:09

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

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

2019-05-23 16:12:40

automake,autoconf使用详解

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

2019-03-29 18:27:36

使用shell转换Mac Address

shell脚本中变量截取的应用实例:将MACAddress由0123456789abc转换成12:34:56:78:9a:bc格式。#!/bin/bash#!changeMACaddressinmac_list.txtfrom0123456789abcto12:34:56:78:9a:bccatmac_list.txt|whilereadline|...

2019-01-11 18:22:07

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

implicitdeclarationoffunction——函数隐式声明警告原因:1、该函数未被声明,但却被调用了,此时gcc会报这样的警告信息。2、(网友总结)该函数所在源文件没有被编译为.o二进制文件。解决办法:1、在调用之前先声明这个函数,一般使用extern关键字(该关键字非必需)  声明函数可以不加extern,函数默认extern;声明变量必须要加extern...

2018-12-28 14:24:48

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

1什么是C语言的隐式函数声明在C语言中,函数在调用前不一定非要声明。如果没有声明,那么编译器会自动按照一种隐式声明的规则,为调用函数的C代码产生汇编代码。下面是一个例子:intmain(intargc,char**argv){    doublex=any_name_function();    return0;}单纯的编译上述源代码,并没有任何报...

2018-12-27 19:28:15

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

这段时间,在看中心后台服务软件源码时发现,有很多自定义函数未经声明却能在主程序中被调用,主程序中没有包括上述函数的头文件,我在各个目录中也找不到上述函数的头文件。这就奇怪了,连使用标准库函数printf()都要包括标准输入输出头文件<stdio.h>,何况是自定义函数?这个问题困扰了我很久。前天问中创公司奚钟华,他说:确实没有头文件,他也试过,在原来的目录中编写了一些新的函数,照葫芦画...

2018-12-27 19:24:17

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

warning:suggestparenthesesaroundcomparisoninoperandof‘&’[-Wparentheses]该警告希望你在&(逻辑与)表达式左右加上括号。有的时候&&(逻辑且)少写了一个&,也会产生该警告。 例如:   if((a[2]>>1)&0x1==1){   ...

2018-12-25 09:29:30

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

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

2018-12-18 20:28:22

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

ctrl+c,ctrl+d,ctrl+z在linux程序中意义和区别ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样. ctrl+c是强制中断程序的执行,进程已经终止。 ctrl+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务...

2018-11-22 15:02:51

在shell中使用sed

如果有一个abc.txt文件,内容如下:$catabc.txtaaabbbBATBUSINESSTYPE,INSIDEID--)ONLINE;INSIDEID--)ONLINEcccdddeeefff如果要删除ddd,那么脚本可以这样写:sed-i'/ddd/d'abc.txt//-i,将修改写会原文件如果删除的是一个变量的值,假如变量是va...

2018-08-24 18:26:35

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

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

2018-08-24 18:19:42

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

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/iamlaosong/article/details/54728393最近要编个shell脚本处理数据,需要检测数据文件是否存在,文件名中包含日期,所以需要生成最近几天的日期,以便检测文件是否存在,看下面的脚本中如何使用双引号、单引号、反引号:OPDATE=`date-d'-1d...

2018-08-24 18:16:20

shell脚本基本语法

转载自:http://www.92csz.com/study/linux/14.htm终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要。下面笔者就带你正式进入shell脚本的世界吧。到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到...

2018-08-24 18:06:59

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

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

2018-08-15 18:14:38

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

相关协议:1)IEEE802.1ag连通性故障管理(CFM:ConnectivityFaultManagement)2)IEEE802.3ah第一英里的以太网(EFM:EthernetintheFirstMile),其中第57章的以太网OAM3)ITU-TY.1731以太网OAM(Operation,AdministrationandMaintenance) 以太网O...

2018-06-06 15:45:58

查看更多

勋章 我的勋章
    暂无奖章