7 frank_jb

尚未进行身份认证

向着代码前进

等级
博文 140
排名 1w+

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/54728393iamlaosong文最近要编个shell脚本处理数据,需要检测数据文件是否存在,文件名中包含日期,所以需要生成最近几天的日期,以便检测文件是否存在,看下面的脚本中如何使用双引号、单引号、反引号: OPDATE=`da...

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

RSA算法和RSA数字签名算法

一、引言 随着网络技术的飞速发展,信息安全性已成为亟待解决的问题。公钥密码体制中,解密和加密密钥不同,解密和加密可分离,通信双方无须事先交换密钥就可建立起保密通信,较好地解决了传统密码体制在网络通信中出现的问题。另外,随着电子商务的发展,网络上资金的电子交换日益频繁,如何防止信息的伪造和欺骗也成为非常重要的问题。数字签名可以起到身份认证、核准数据完整性的作用。目前关于数字签名的研究主要集中基于公钥...

2018-03-07 15:47:49

数字签名是什么

今天,我读到一篇好文章。它用图片通俗易懂地解释了,"数字签名"(digitalsignature)和"数字证书"(digitalcertificate)到底是什么。我对这些问题的理解,一直是模模糊糊的,很多细节搞不清楚。读完这篇文章后,发现思路一下子就理清了。为了加深记忆,我把文字和图片都翻译出来了。文中涉及的密码学基本知识,可以参见我以前的笔记。数字签名:将报文按双方约定...

2018-03-07 13:07:06

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

字节序(byteorder)和位序(bitorder) 在网络编程中经常会提到网络字节序和主机序,也就是说当一个对象由多个字节组成的时候需要注意对象的多个字节在内存中的顺序。  以前我也基本只了解过字节序,但是有一天当我看到ip.h中对IP头部结构体structiphdr的定义时,我发现其中竟然对一个字节中的8个比特位也区分了大小端,这时我就迷糊了,不是说大小端只有在多个字节之间

2018-01-10 20:05:01
奖章
    暂无奖章