- 博客(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的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&iptables;
2018-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人