自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张登雨的博客

学习笔记

  • 博客(12)
  • 收藏
  • 关注

转载 Linux | 内核五大模块

文章目录1、进程调度模块2、进程间通信模块3、内存管理模块4、文件系统模块5、网络接口模块Linux系统五大模块:1、进程调度模块Linux以进程作为系统资源分配的基本单位,并采用动态优先级的进程高级算法,保证各个进程使用处理机的合理性。进程调度模块主要是对进程使用的处理机进行管理和控制。【进程创建】在Linux环境编程时,一般采用fork()/vfork()函数(fork 是 创建一个子进程,并把父进程的内存数据copy到子进程中;vfork是 创建一个子进程,并和父进程的内存数据share

2021-08-29 20:22:36 2317

转载 Linux | 线程间同步

文章目录1、线程同步概念1.1、为什么要同步1、线程同步概念假设有 4 个线程 A、B、C、D,当前一个线程 A 对内存中的共享资源进行访问的时候,其他线程 B, C, D 都不可以对这块内存进行操作,直到线程 A 对这块内存访问完毕为止,B,C,D 中的一个才能访问这块内存,剩余的两个需要继续阻塞等待,以此类推,直至所有的线程都对这块内存操作完毕。 线程对内存的这种访问方式就称之为线程同步,通过对概念的介绍,我们可以了解到所谓的同步并不是多个线程同时对内存进行访问,而是按照先后顺序依次进行的。1.1

2021-08-29 13:21:28 1180

转载 Linux驱动 | 加载.ko驱动模块的两种方法(insmod与modprobe)

文章目录1、加载驱动模块2、查看已加载的驱动模块列表3、卸载驱动模块假设要加载的驱动程序模块名为SHT21.ko1、加载驱动模块方法一进入SHT21.ko驱动模块文件所在的目录,然后直接insmod SHT21.ko即可方法二将SHT21.ko文件拷贝到/lib/module/#uname -r#/目录下,这里,#uname -r#意思是,在终端中输入uname -r后显示的内核版本及名称,例如mini2440中#uname -r#就是2.6.32.2-FriendlyARM。然后dep

2021-08-27 08:29:02 8674

原创 Linux下的生产者消费者模型模型

Linux下的生产者消费者模型模型

2021-08-20 11:12:08 117

转载 中断解读以及中断服务函数

文章目录1、硬中断和软中断2、中断服务程序(ISR)3、面试题从本质上来讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给中断控制器。如果中断的线是激活的,中断控制器就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。1、硬中断和软中断硬中断由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中

2021-08-19 15:32:41 9410 2

原创 git | 常用命令

文章目录仓库配置增加/删除文件代码提交分支标签查看信息远程同步撤销其他仓库# 在当前目录新建一个Git代码库$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 下载一个项目和它的整个代码历史$ git clone [url]配置# 显示当前的Git配置$ git config --list# 编辑Git配置文件$ git config -e [--global]# 设置提交代码时的用户信息$ git con

2021-08-19 10:05:25 350

原创 C/C++语言ACM格式输入输出练习 | 自测通过、提交不通过

题目描述每年前几场在线笔试编程题的时候,总有同学询问为什么我本地测试通过,自测也通过,提交代码系统却返回通过率0。打开以下链接可以查看正确的代码https://ac.nowcoder.com/acm/contest/5657#question这不是系统的错,可能是因为1.你对题目理解错了,你的代码只过了样例或你自己的数据2.你的代码逻辑有问题,你的代码只过了样例或你自己的数据总之就是你的代码只是过了样例和自测数据,后台的测试数据你根本不可见,要多自己思考。这个题目如果你提交后通过率为0,又

2021-08-14 21:06:19 1041

原创 C/C++语言ACM格式输入输出练习 | 输入字符串数据

文章目录1、输入字符串个数、一行字符串、空格隔开2、输入多组字符串、空格隔开3、数多组字符串、逗号隔开1、输入字符串个数、一行字符串、空格隔开题目描述对输入的字符串进行排序后输出打开以下链接可以查看正确的代码https://ac.nowcoder.com/acm/contest/5657#question输入描述输入有两行,第一行n第二行是n个空格隔开的字符串输出描述输出一行排序后的字符串,空格隔开,无结尾空格示例1输入5c d a bb e输出a bb c d e

2021-08-14 21:02:46 2744

原创 C/C++语言ACM格式输入输出练习 | 输入整数数据

文章目录1、输入多组2个整数数据2、输入组数、多组2个数据3、输入多组2个整数数据、0 0结尾4、数据多组整数、开头为这行数据个数、0结尾5、输入组数、多组整数、开头为这行数据个数6、输入多组整数、开头为每行数据个数7、输入多组n个整数1、输入多组2个整数数据题目描述计算a+b打开以下链接可以查看正确的代码https://ac.nowcoder.com/acm/contest/5657#question输入描述输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数

2021-08-14 20:53:43 1935

原创 C语言 | scanf读取一行不确定数量数据

文章目录1、输入数字2、输入字符1、输入数字代码:#include <stdio.h>#include<stdlib.h>int main() { int* res = (int*)malloc(sizeof(int) * 10001); int count = 0; char c; do { scanf("%d", &res[count++]); } while ((c = getchar())

2021-08-12 14:56:30 5945

原创 C语言 | 构建链表

文章目录1、输入数字建立链表2、输入字符建立链表1、输入数字建立链表代码:#include<stdio.h>#include<stdlib.h>typedef struct ListNode { int data; struct ListNode *next;}*PT_ListNode, T_ListNode;//输入数字建立链表int main() { T_ListNode *head, *tail, *p, *r, *q;

2021-08-12 14:40:15 723

转载 C语言 | const关键字的使用

文章目录1、修饰局部变量2、常量指针与指针常量3、修饰函数的参数4、修饰函数的返回值5、修饰全局变量关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下的优点:1、预编译指令只是对值进行简单的替换,不能进行类型检查2、可以保护被修饰的东西,防止意外修改,增强程序的健壮性3

2021-08-11 11:24:29 93

空空如也

空空如也

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

TA关注的人

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