自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 字符设备的相关函数

主要作用:在/sys/class下创建类对象,方便管理。主要作用:真正意义上的放到内核的管理数组中。主要作用:获的必要的内存空间存储信息。主要作用:设置文件操作函数指针。主要作用:得到设备号。4、注册cdev到内核。2、开辟字符设备空间。

2023-11-21 16:40:30 53

原创 GPIO总线的dts 配置学习笔记

学习笔记

2022-08-03 12:06:08 724 1

原创 /proc/meminfo 解析

meminfo

2022-07-26 10:42:47 3367

原创 rust 交叉编译遇到的问题

坑爹rust

2022-07-05 16:51:33 160

原创 suricate签名规则

suricata防火墙学习

2022-06-24 16:48:59 767

原创 ISP(图像信号处理器)是什么?

图像处理器,也称为图像处理引擎、图像处理单元( IPU ) 或图像信号处理器( ISP ),是一种媒体处理器或专用数字信号处理器(DSP)

2022-06-22 09:47:29 3281 1

原创 xinted 服务配置文件信息

x

2022-06-21 11:09:39 165

原创 【题记】丑数

class Solution {public: int GetUglyNumber_Solution(int index) { if(index<=0) return 0; int dp[index]; dp[0]=1; //是第一个丑数 int a=0; //权值为2 int b=0; //权值为3 int c=0; //权值为5 for(int i...

2021-09-21 17:18:19 66

原创 引用与指针的区别

概叙 引用是对指针的封装。作用是对变量取别名,访问和修改它的值。1、使用方法注意事项:引用必须直接初始化 形参列表引用没有直接初始化(在函数调用时初始化)引用一旦初始化 不能更改引用对象(不能指向其他对象) 从一而终对引用对象的操作,直接影响其目标对象int a = 10;int& r1 = a,r2;//此处r2是int类型int* p1,p2;int& r = 10;//错误 10是常量const int&r = 10; //可...

2021-09-20 15:52:51 111

原创 new 和 malloc的区别

1、各自的用法new数据类型* 指针变量 = new 数据类型; //自动初始化为"零"数据类型* 指针变量 = new 数据类型(初始值);int * p = new int(10);int * pp = new int[10];删除使用delete/delete[];malloc数据类型* 指针变量=(数据类型*)malloc(大小);2、new/delete是C++标识符 malloc/free是C语言的函数3、new在申请动态内存的时候不需要计算大小..

2021-09-20 15:11:16 65

原创 复用IO epol poll select 池 零拷贝读写 上下文切换 mmap

高性能服务器、网络理论知识 与操作系统文章目录高性能服务器、网络理论知识 与操作系统@[toc]高性能服务器提高服务器的性能1、I/O模型阻塞IO (不合适)非阻塞IOI/O复用SIGIO信号异步I/O2、池 进程池 线程池3、零拷贝读写4、上下下切换和锁5、mmap / munmap函数6、splice7、tee总结:高性能服务器提高服务器的性能1、I/O模型阻塞IO (不合适)​ 程序阻塞与读写函数 当没有数据可读时 程序一直阻塞到读取数据成功​ 阻塞的过程:数据从无到有的时间

2021-09-20 13:18:45 113

原创 文件的内核数据结构 dup/dup2 fcntl

1、i节点 通过ls -i可查看文件的i节点号,i节点记录了文件的属性和数据在磁盘上的存储位置。目录也是文件,存放路径和i节点号的映射表。2、dup/dup2函数说明#include <unistd.h>int dup (int oldfd);//用来复制文件描述符 返回最小的文件描述符int dup2 (int oldfd, int newfd);//用来复制文件描述符 将old描述符复制给newfd 如果newfd被占用则覆盖...

2021-09-20 13:00:31 86

原创 文件描述符相关函数总结 dup2 dup

1、什么是文件描述符?1、非负的整数。2、表示一个打开的文件。3、由系统调用(open)返回,被内核空间(后续系统调用)引用。4、内核缺省为每个进程打开三个文件描述符:stdin 0 - 标准输入 stdout 1 - 标准输出 stderr 2 - 标准出错这三个描述符也可以被修改 后面会讲文件描述符的范围介于0到OPEN_MAX之间,传统Unix中OPEN_MAX宏被定义为63,现代Linux使用更大...

2021-09-20 11:41:23 175

原创 文件锁、进程学习笔记

#include <fcntl.h>int fcntl (int fd, int cmd, struct flock* lock);struct flock { short int l_type; // 锁的类型: // F_RDLCK/F_WRLCK/F_UNLCK // (读锁/写锁/解锁) short int l_whence; // 偏移起点: .

2021-09-20 10:38:11 142

原创 【题记】旋转数组的最小数字

思路: 首先我们观察题目要求时间复杂度为logn,又是一个半有序序列此时我们就应该联想到折半查找查找半有序序列。 int minNumberInRotateArray(int* rotateArray, int rotateArrayLen ) { // write code here int left = 0; int right = rotateArrayLen-1; int mid; while(left<ri...

2021-09-19 11:04:17 70

原创 牛客网 重排链表

思路: 首先既然不能改变值,那么只能尝试改变next指向,但我们这个时候要知道链表的单向性,如果尝试访问最后端点,则前面的值无法再访问,重启链表只会浪费时间。 因此想到要使用线性方式进行运算!class Solution {public: void reorderList(ListNode *head) { if(head==NULL || head->next==NULL||head->next->next==NU...

2021-09-19 10:35:00 105

原创 【题记】在两个长度相等的排序数组中找到上中位数

int findMedianinTwoSortedAray(int* arr1, int arr1Len, int* arr2, int arr2Len ) { // write code here int mid; while(1){ if(arr1Len==1){ return *arr1>=*arr2?*arr2:*arr1; }else{ int flag = arr1Len%2; .

2021-09-19 09:44:39 83

原创 KMP简单讲解

首先我们要知道KMP其实不难首先理解next数组的作用 int ss=S.size();//模板长度 int ts=T.size();//文本串长度 int prev = -1; int curr = 0; int res = 0; int next[ss+1]; next[0]=-1;//一定要初始化-1 for(;curr<ss;){//

2021-09-19 08:59:39 56

原创 二维数组的指针访问记录

int arr[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p1=&arr[2][2]; int *p2=arr[2]+2; int *p3=*(arr+2)+2; int (*p4)[3]=&arr[2]; int (*p5)[3]=arr+2; int (*p6)[3]=arr; //二维数组名本身即是指向二维数组中第一个一维数组的指针 int (*p7)[4][3]=&arr; //arr与&am...

2021-07-18 21:02:46 81

原创 C语言中对数组名指针的实用理解方法(A A[0] A[0][0]取地址区别)

1.数组的含义、定义与初始化方式数组的含义

2021-07-13 00:23:27 727 2

原创 万能排序(排序方法为冒泡排序、持续更新其他排序)

基于冒泡排序下的万能排序,只需编写对应类型的比较函数带入万能排序函数中。#include<stdio.h>#include<stdlib.h>int func1(void * p1,void *p2){ return *(int*)p1-*(int *)p2;}int sort(void * beg, size_t nmemb,size_t size,int (*func)(void *,void *)){ int i; i...

2021-07-10 23:16:19 182

原创 如何在不使用 “if”, “? :”, “switc.h”和其他判定语句和C语言函数的情况下,比较两个数的大小。

(题目)There are two int variables: a and b, don’t use “if”, “? :”, “switch”or other judgement statements and C function, find out the biggest one and least one of the two numbers。 两个不相等的数进行比较时,只有两种结果“正”“负”,在二进制编码中主要体现在编码头的符号位的“0”“1”。如此以来我...

2021-07-10 22:55:00 434 1

原创 关于运算符对数据的影响

双面运算符进行计算时(此处为unsigned int 和Int进行比较运算符运算)窄字节向宽字节扩充 short=>int=>longlong 有符号int向无符号unsigned in转换int app(int a){ static int b = 3; if(a>0) return a*app(--b); else return 2; } int main(){ unsigned int ...

2021-07-10 22:41:34 92

原创 文件操作指令fgetc fgets fread fprintf 各类输入输出的区别。

1. 文件的打开关闭、打开方式 文件的打开int main(int argc,char * argv[]){ FILE *fp = fopen("out.dat","w+"); if(fp==NULL) { printf("OPEN FILE FAILE \n"); } fprintf(fp,"OPEN FILE SUCCEED \n");}...

2021-06-02 11:49:58 741

原创 PAT 题目 1003 我要通过! (20 分)

#include<stdio.h>#define N 110int yesorno(char *s){ int i=0,a=0,b=0,c=0,p=0,t=0; while(s[i]!='\0')//检查多个PT { if(s[i]!='A' && s[i]!='P' && s[i]!='T' &&s[i]!=' ') { return 0; }...

2021-06-01 09:23:07 187

原创 (详)数组的定义初始化、面向数组的指针使用以及各类问题(随时更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言C提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as np import pandas as pd im..

2021-05-31 14:33:46 286

原创 Vector初始化与常用函数以及几个K问题

Vector_c++vector:定义说明初始化常用函数几个K问题vector:定义说明vector是已经被封装好了的动态数据可以被直接调用,可以存储多种类型的数组,所以可以称之为动态数组。进行vector操作前需要定义头文件#include<vector>初始化常用函数几个K问题...

2020-12-13 09:43:48 234

原创 c++链表数据结构格式

二叉树与基本链表格式种类TreeNode(基本二叉树)struct TreeNode{ int val //树节点编号 struct TreeNode *left; //左衍生节点 struct TreeNode *right; //右衍生节点 TreeNode(int x) : //二叉树链表初始化 val(x),left(NULL),right(NULL) { }};TreeNode是基本二叉树 它的遍历和反遍历按照层遍历而来图示二叉树序列化为

2020-12-05 09:59:17 476

空空如也

空空如也

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

TA关注的人

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