自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (3)
  • 收藏
  • 关注

原创 C++的vector概述

vector 是向量类型,它可以容纳许多类型的数据,如若干个整数,所以称其为容器。vector 是C++ STL的一个重要成员,使用它时需要包含头文件:#include < vector> using namespace std;Vector 作为函数的参数或者返回值时,需要注意它的写法:double Distance(vector<int>&a, vector<int>&b)基本函数实现1.构造函数vector():创建一

2021-01-29 19:00:41 807

原创 基于CAN总线的汽车诊断协议(包括UDS诊断)

小知识点10 02、10 03模式切换,S3 client开始诊断报文超时计时(3E80保持会话)CANTP层 client 发36首帧10,server回流控30 08,client发8帧连续帧20-2f(500K,1ms发4帧)。FlowControl第一字节的高4bit为0011,低4bit为FS,即FlowStatus,第二个字节为BS(BlockSize),第三个字节为STmin(SeperateTime)cs时间仲裁(ID小优先级高)常用诊断ID介绍1、诊断会话控制0x1

2021-01-22 11:52:29 8194

原创 Linux的printf、fprintf、dprintf、sprintf、snprintf、vprintf系列

printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - formatted output conversion#include <stdio.h>int printf(const char *format, ...);int fprintf(FILE *stream, const char *format, ...);int dprintf(int fd, const char *fo.

2021-01-19 18:33:53 1406

原创 linux线程间的通信(pthread_cleanup_push和pthread_cleanup_pop,pthread_join,pthread_detach)

线程可以安排他退出时需要调用的函数,这与进程可以用atexit函数安排进程退出时需要调用的函数是类似的。这样的函数称为线程清理处理程序,线程可以建立多个清理处理程序。处理程序记录在栈中,也就是说他们的执行顺序与他们注册的顺序相反。pthread_cleanup_push和pthread_cleanup_pop函数原型如下: 头文件:#include <pthread.h> 函数原型:void pthread_cleanup_push(void (*rtn)(vo...

2021-01-18 18:47:43 412

原创 Linux inotify功能及原理(inotify_init、inotify_add_watch、inotify_rm_watch、read)

1. inotify主要功能它是一个内核用于通知用户空间程序文件系统变化的机制。开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,inotify 是一种文件系统的变化通知机制,如文件

2021-01-18 18:07:15 12197

原创 Linux flock()函数--文件锁

文件锁是一种文件读写机制,在任何特定的时间只允许一个进程访问一个文件。利用这种机制能够使读写单个文件的过程变得更安全。这里我们使用flock()函数。flock函数说明:flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。头文件#include<sys/file.h>定义函数int flock(int fd,int operation);//Applyorremoveanad...

2021-01-15 16:18:00 4401 1

原创 Linux的readlink与/proc/self/exe概述

相关函数: stat, lstat, symlink表头文件: #include <unistd.h>定义函数:ssize_t readlink(const char *path, char *buf, size_t bufsiz);函数说明:readlink()会将参数path的符号链接内容存储到参数buf所指的内存空间,返回的内容不是以\000作字符串结尾,但会将字符串的字符数返回,这使得添加\000变得简单。若参数bufsiz小于符号连接的内容长度,过长的内容会被截断,如果 .

2021-01-15 14:04:15 8021 1

原创 Linux ls -l 查看文件的属性

2021-01-15 11:04:33 464

原创 linux的wait/waitpid和exec/execv函数

wait#include <sys/types.h> /* 提供类型pid_t的定义 */#include <sys/wait.h>pid_t wait(int *status)进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。参数status用来.

2021-01-14 17:03:25 611

原创 Linux下getopt()函数概述

#include <unistd.h>extern char *optarg; //选项的参数指针extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。extern int opterr, //当opterr=0时,getopt不向stderr输出错误信息。extern int optopt; //当命令行选项字符不包括在optstring中或者选项缺少必要的参数时,该选项存储在optopt中,getopt返回'?’...

2021-01-12 14:43:06 145

原创 virtualbox中ubuntu18.04和windows共享文件夹配置

共享文件夹1、设置共享文件夹,如图:2、启动虚拟机,在桌面可以看到设置的共享文件夹了,但因权限不够,还不能直接访问。接下来设置权限,打开终端,执行命令:sudo usermod -aG vboxsf $(whoami)(注:这个命令的大概意思是将当前登录用户加入到vboxsf组)3、重启虚拟机,就可以在虚拟机内打开共享文件夹了另外,有需要的话可以将其他的用户添加到vboxsf组,如:sudo adduser root vboxsfsudo adduser www-data v

2021-01-11 11:53:20 1292

原创 linux coredump概述

1、什么是coredump: 我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下会产生一个叫做core的文件。 通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成的一个文件,许多的程序出错的时候都会产生一个core文件,通过工具分析这个文件,我们可以定位到程序异常退出的时候对应的堆栈调用...

2021-01-07 15:13:19 298

原创 Linux tail概述

tail [参数] [文件] -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示文件的尾部 n 行内容 --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束 -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒tail 命令可用于查看文件的内容,有一个常用的参数-f常用于查阅正在改...

2021-01-07 12:19:14 321

原创 offsetof与container_of概述

offsetof是用来判断结构体中成员的偏移位置,container_of宏用来根据成员的地址来获取结构体的地址使用offsetof宏需要包含stddef.h头文件#define offsetof(type, member) (size_t)&(((type*)0)->member)巧妙之处在于将地址0强制转换为type类型的指针,从而定位到member在结构体中偏移位置。编译器认为0是一个有效的地址,从而认为0是type指针的起始地址。使用container_of宏需要包含li

2021-01-06 11:53:34 206

原创 Shell环境变量概述

基本语法1) export 变量=值 将shell变量输出为环境变量2) source 配置文件 修改后的配置信息生效如source /etc/profile 也可以通过重启系统或者注销用户的方式使环境变量生效3) echo $变量名 查询环境变量的值TOMCAT_HOME=/root/tomcatexport TOMCAT_HOME #升级为环境变量source /etc/profileecho $TOMCATShell 变量的作用域可以分为三种:有的变量只能在函数内部使

2021-01-05 14:51:13 365

linux内核netfilter模块HOOKs点的注册及调用

详细介绍了linux下防火墙之netfilter模块的hooks注册、调用、测试等情况。

2018-04-19

中国移动-防火墙技术

基于中国移动现网部署设备情况,介绍了当前流行的防火墙技术

2018-04-19

洞悉linux下的Netfilter&iptables;

详细介绍了linux下的防火墙设计和原理,基于应用层的iptables和内核的Netfilter。重点讲了SNAT\DNAT\状态防火墙等,还有具体实例讲解

2018-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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