Linux proc虚拟文件系统
文章目录
- 简介
- proc常用节点
- pid节点
- procfs接口
- 参考
简介
测试环境:Linux dev-PC 5.18.17-amd64-desktop-hwe #20.01.00.10 SMP PREEMPT_DYNAMIC Thu Jun 15 16:17:50 CST 2023 x86_64 GNU/Linux
proc虚拟文件系统是linux内核提供的一种让用户和内核内部数据结构进行交互的机制。
proc文件系统并不是真正意义上的文件系统,它存在于内存中,并不占用磁盘空间。它包含一些结构化的目录和虚拟文件,向用户呈现内核中的一些信息,也可以作为一种从用户空间向内核发送信息的手段。许多shell命令如ps、top等都是从proc文件系统中读取信息。
在测试环境中,proc文件系统挂载信息如下
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
proc下面的内容:
$ ls /proc
1 1150 1272 1801 25 2708 2855 3257 3489 41 5242 6236 7594 87 acpi fb loadavg slabinfo
10 1151 13 1895 2507 2710 2871 3293 3492 42 5247 6454 76 88 asound filesystems locks softirqs
100 116 14 19 2508 2726 2874 3295 3493 43 5258 6504 7615 89 buddyinfo fs mdstat stat
101 1160 1408 2 2511 275 2898 33 3524 44 5261 6560 7642 9 bus interrupts meminfo swaps
1016 1184 1428 20 2512 276 2904 3331 353 45 5262 6625 7692 90 cgroups iomem misc sys
102 12 1471 2080 2515 2794 3 3346 3534 46 5277 7 77 91 cmdline ioports modules sysrq-trigger
103 1203 1476 21 2581 2796 30 3390 3540 48 53 7035 78 92 consoles irq mounts sysvipc
107 1209 15 22 26 2798 31 3397 3547 49 54 7053 79 93 cpuinfo kallsyms mtrr thread-self
108 1213 1516 229 2632 28 3104 34 36 5 55 72 80 94 crypto kcore net timer_list
11 1218 1595 2395 2673 2803 3125 340 37 50 558 73 81 95 devices keys pagetypeinfo tty
110 122 16 24 2674 2810 32 3419 38 5099 56 74 82 96 diskstats key-users partitions uptime
111 1222 1601 2460 2687 2821 3233 3476 386 51 57 7475 83 97 dma kmsg pressure version
1124 1227 169 2461 2696 2833 3244 3478 39 516 59 7478 84 978 driver kpagecgroup schedstat vmallocinfo
1132 1229 170 2477 2697 2847 3249 3484 4 517 60 7484 85 98 dynamic_debug kpagecount scsi vmstat
1143 123 18 2488 27 2854 3253 3485 40 52 61 75 86 99 execdomains kpageflags self zoneinfo
proc常用节点
- cpuinfo:CPU信息
- meminfo:内存信息
- mounts:加载的文件系统
- filesystems:支持的文件系统
- modules:已加载的模块
- cmdline:系统启动的内核命令行参数
<pid>
:提供pid进程的信息- interrupts:中断使用情况
- kmsg:内核日志信息
- devices:可用的设备
- slabinfo:slab系统统计信息
- uptime:系统正常运行时间
pid节点
sudo ls /proc/5261 -lh
总用量 0
-r--r--r-- 1 root root 0 2月 9 11:57 arch_status
dr-xr-xr-x 2 dev dev 0 2月 9 11:57 attr
-r-------- 1 root root 0 2月 9 11:57 auxv
-r--r--r-- 1 root root 0 2月 9 11:57 cgroup
--w------- 1 root root 0 2月 9 11:57 clear_refs
-r--r--r-- 1 root root 0 2月 9 11:39 cmdline
-rw-r--r-- 1 root root 0 2月 9 11:57 comm
-rw-r--r-- 1 root root 0 2月 9 11:57 coredump_filter
-r--r--r-- 1 root root 0 2月 9 11:57 cpu_resctrl_groups
lrwxrwxrwx 1 root root 0 2月 9 11:57 cwd -> /
-r-------- 1 root root 0 2月 9 11:57 environ
lrwxrwxrwx 1 root root 0 2月 9 11:38 exe -> /usr/sbin/sshd
dr-x------ 2 root root 0 2月 9 11:57 fd
dr-xr-xr-x 2 dev dev 0 2月 9 11:57 fdinfo
-rw-r--r-- 1 root root 0 2月 9 11:57 gid_map
-r-------- 1 root root 0 2月 9 11:57 io
-r--r--r-- 1 root root 0 2月 9 11:57 limits
-rw-r--r-- 1 root root 0 2月 9 11:57 loginuid
dr-x------ 2 root root 0 2月 9 11:57 map_files
-r--r--r-- 1 root root 0 2月 9 11:57 maps
-rw------- 1 root root 0 2月 9 11:57 mem
-r--r--r-- 1 root root 0 2月 9 11:57 mountinfo
-r--r--r-- 1 root root 0 2月 9 11:57 mounts
-r-------- 1 root root 0 2月 9 11:57 mountstats
dr-xr-xr-x 60 dev dev 0 2月 9 11:57 net
dr-x--x--x 2 root root 0 2月 9 11:57 ns
-r--r--r-- 1 root root 0 2月 9 11:57 numa_maps
-rw-r--r-- 1 root root 0 2月 9 11:57 oom_adj
-r--r--r-- 1 root root 0 2月 9 11:57 oom_score
-rw-r--r-- 1 root root 0 2月 9 11:57 oom_score_adj
-r-------- 1 root root 0 2月 9 11:57 pagemap
-r-------- 1 root root 0 2月 9 11:57 patch_state
-r-------- 1 root root 0 2月 9 11:57 personality
-rw-r--r-- 1 root root 0 2月 9 11:57 projid_map
lrwxrwxrwx 1 root root 0 2月 9 11:57 root -> /
-rw-r--r-- 1 root root 0 2月 9 11:57 sched
-r--r--r-- 1 root root 0 2月 9 11:57 schedstat
-r--r--r-- 1 root root 0 2月 9 11:57 sessionid
-rw-r--r-- 1 root root 0 2月 9 11:57 setgroups
-r--r--r-- 1 root root 0 2月 9 11:57 smaps
-r--r--r-- 1 root root 0 2月 9 11:57 smaps_rollup
-r-------- 1 root root 0 2月 9 11:57 stack
-r--r--r-- 1 root root 0 2月 9 11:40 stat
-r--r--r-- 1 root root 0 2月 9 11:57 statm
-r--r--r-- 1 root root 0 2月 9 11:39 status
-r-------- 1 root root 0 2月 9 11:57 syscall
dr-xr-xr-x 3 dev dev 0 2月 9 11:57 task
-rw-r--r-- 1 root root 0 2月 9 11:57 timens_offsets
-r--r--r-- 1 root root 0 2月 9 11:57 timers
-rw-rw-rw- 1 root root 0 2月 9 11:57 timerslack_ns
-rw-r--r-- 1 root root 0 2月 9 11:57 uid_map
-r--r--r-- 1 root root 0 2月 9 11:57 wchan
常用信息:
- attr:安全相关属性
- cgroups:进程所属控制组
- cmdline:进程命令行参数
- environ:进程环境变量
- fd:一个包含所有进程打开的文件描述符目录
- mem:进程内存被使用情况
- stat:进程状态
- status:进程当前状态
- cwd:进程当前工作目录的链接
- exe:指向该进程的执行命令文件
- maps:内存映射信息
- statm:进程内存使用信息
- root:链接次进程的root目录
- oom_adj、oom_score、oom_score_adj:用于OOM killer
procfs接口
procfs文件系统提供了一些API供内核中其他模块使用,这些接口或定义在头文件中或通过EXPORT_SYMBOL直接导出,代码位置在fs/proc
文件夹下。
下面看下内核中misc驱动是如何使用procfs接口在proc文件系统下面创建和管理自己的节点的。
misc驱动代码位置在drivers/char/misc.c
直接看其的初始化入口:
static int __init misc_init(void)
{int err;struct proc_dir_entry *ret;ret = proc_create_seq("misc", 0, NULL, &misc_seq_ops);err = class_register(&misc_class);if (err)goto fail_remove;err = -EIO;if (register_chrdev(MISC_MAJOR, "misc", &misc_fops))goto fail_printk;return 0;fail_printk:pr_err("unable to get major %d for misc devices\n", MISC_MAJOR);class_unregister(&misc_class);
fail_remove:if (ret)remove_proc_entry("misc", NULL);return err;
}
一开始其就使用了proc_create_seq创建了一个名为misc的节点。
#define proc_create_seq(name, mode, parent, ops) \proc_create_seq_private(name, mode, parent, ops, 0, NULL)struct proc_dir_entry *proc_create_seq_private(const char *name, umode_t mode,struct proc_dir_entry *parent, const struct seq_operations *ops,unsigned int state_size, void *data)
{struct proc_dir_entry *p;p = proc_create_reg(name, mode, &parent, data);if (!p)return NULL;p->proc_ops = &proc_seq_ops;p->seq_ops = ops;p->state_size = state_size;return proc_register(parent, p);
}
EXPORT_SYMBOL(proc_create_seq_private);
其中misc_seq_ops
是该文件节点的操作函数集,目前统一为seq_file机制:
static const struct seq_operations misc_seq_ops = {.start = misc_seq_start,.next = misc_seq_next,.stop = misc_seq_stop,.show = misc_seq_show,
};
关于seq_file机制,可以参考相关文档:The seq_file Interface、内核 seq_file 操作函数、linux内核seq_file接口
下面是读取misc节点:
$ cat /proc/misc
119 simple_virtualchardev
232 kvm
130 watchdog
235 autofs
234 btrfs-control
120 cpu_dma_latency
227 mcelog
121 vndbinder
122 hwbinder
123 binder
124 ashmem
236 device-mapper
223 uinput1 psaux
196 vfio
200 tun
125 udmabuf
237 loop-control
228 hpet
229 fuse
126 ecryptfs
231 snapshot
183 hw_random
127 vga_arbiter
242 rfkill
参考
The /proc Filesystem
T H E /proc F I L E S Y S T E M
The seq_file Interface
内核 seq_file 操作函数
linux内核seq_file接口
相关文章:
Linux proc虚拟文件系统
文章目录 简介proc常用节点pid节点procfs接口参考 简介 测试环境:Linux dev-PC 5.18.17-amd64-desktop-hwe #20.01.00.10 SMP PREEMPT_DYNAMIC Thu Jun 15 16:17:50 CST 2023 x86_64 GNU/Linux proc虚拟文件系统是linux内核提供的一种让用户和内核内部数据结构进行交…...
IDEA中常见问题汇总
🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…...
Spring Security 学习大纲
Spring Security 系统学习大纲 一、基础入门 Spring Security 概述 安全框架的核心功能(认证、授权、攻击防护)核心组件:SecurityFilterChain, UserDetailsService, AuthenticationProvider, AccessDecisionManager与 Servlet 容器的集成原理…...
本地部署模型全攻略阶段二_3---Kiln AI
Kiln AI && Ollma && DeepSeek Kil AI:简单介绍与入门教程Kiln AI简介核心功能优势与特点二、Kiln AI安装步骤下载安装创建项目和任务使用界面Fine Tuning三、资源与支持Kil AI:简单介绍与入门教程 Kiln AI简介 简述Kiln AI是什么 Kiln AI是一款开源的AI开发…...
从零开始:使用Jenkins实现高效自动化部署
在这篇文章中我们将深入探讨如何通过Jenkins构建高效的自动化部署流水线,帮助团队实现从代码提交到生产环境部署的全流程自动化。无论你是Jenkins新手还是有一定经验的开发者,这篇文章都会为你提供实用的技巧和最佳实践,助你在项目部署中走得…...
机器学习 - 线性回归(最大后验估计)
最大似然估计的一个缺点是当训练数据比较少时会发生过拟合,估计的参数可能不准确.为了避免过拟合,我们可以给参数加上一些先验知识. 一、先从最大似然估计的一个缺点入手 最大似然估计(MLE)在处理小样本数据时,容易发…...
Web前端开发--HTML
HTML快速入门 1.新建文本文件,后缀名改为.html 2.编写 HTML结构标签 3.在<body>中填写内容 HTML结构标签 特点 1.HTML标签中不区分大小写 2.HTML标签属性值中可以使用单引号也可使用双引号 3.HTML语法结构比较松散(但在编写时要严格一点&…...
Linux | 系统调用
文章目录 Linux | 系统调用open 系统调用功能头文件和函数原型参数解释返回值示例代码 其他常用系统调用read 系统调用write 系统调用close 系统调用lseek 系统调用stat 系统调用 Linux | 系统调用 前言:在Linux系统中,系统调用是用户空间程序与内核进行…...
用easyExcel如何实现?
要使提供的 ExcelModelListener 类来解析 Excel 文件并实现批量存储数据库的功能,需要结合 EasyExcel 库来读取 Excel 数据。具体来说,可以使用 EasyExcel.read() 方法来读取 Excel 文件,并指定 ExcelModelListener 作为事件监听器。 下面是…...
ASP.NET Core SignalR身份验证
在需要登录才能访问的集线器类上或者方法上添加[Authorize]。也支持角色等设置,可以设置到Hub或者方法上。 配置好User、Role、MyDbContext、JWTSettings、IdentityHelper Program.cs using SignaIR的基本使用; using Scalar.AspNetCore; using Identity框架; us…...
查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串
您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串: <p><img style"max-width:100%;" src"https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170…...
linux本地部署deepseek
目录 安装ollama安装open-webui网页客户端界面本地安装open-webui直接安装在裸机上安装在docker中 外部服务器安装open-webui,并链接本地的ollama服务直接安装在外部服务器裸机上配置systemd启动open-webui 安装在docker中 最后更新时间2024-05-24 安装ollama olla…...
ESP32_H2(IDF)学习系列-蓝牙基础学习(上)
一、简介 参考:[乐鑫-蓝牙] Bluetooth LE 的分层架构 Bluetooth LE 协议定义了三层软件结构,自上而下分别是 应用层 (Application Layer) 应用层(Application Layer) 主机层 (Host Layer) 控制器层 (Controller Layer) 应用…...
防御综合实验
需求一 配置vlan [SW2]int g 0/0/2 [SW2-GigabitEthernet0/0/2]port link-type access [SW2-GigabitEthernet0/0/2]port default vlan 10 [SW2-GigabitEthernet0/0/2]int g0/0/3 [SW2-GigabitEthernet0/0/3]port link-type access [SW2-GigabitEthernet0/0/3]port default vl…...
Blazor-<select>
今天我们来说说<select>标签的用法,我们还是从一个示例代码开始 page "/demoPage" rendermode InteractiveAuto inject ILogger<InjectPage> logger; <h3>demoPage</h3> <select multiple>foreach (var item in list){<…...
zy.21
PHP(续) PHP代码执行漏洞 1.PHP中代码漏洞的概念 代码执行漏洞就是在代码中若存在eval、assert等能将所接收的参数作为代码去执行,并且拼接的内容可被访问者控制,也就是把传入的参数给拼接进去了,造成了额外的代码执行,也就造成了代码执行漏洞。(大概原理&#x…...
【c++】四种类型转换形式
【c】四种类型转换形式 编译时: static_cast(静态转换) const_cast(去常性转换) reinterpret_cast(重新解释转换,直接转换地址) 运行时: dynamic_cast(动态转换,运行时类…...
在npm上传属于自己的包
最近在整理代码,上传到npm方便使用,所以学习了如何在npm发布一个包,整理写成一篇文章和大家一起交流。 1、注册npm账号 npm | Home 2、确保是登录状态 (在包目录下,终端执行 npm login) 按enter键自动打开页面&…...
关系型数据库主备高可用方案对比笔记
目录标题 数据库高可用性解决方案对比Oracle Data GuardMySQL 主从复制SQL Server AlwaysOnPG Patroni 流复制达梦 DMDataWatch人大金仓 repmgr 备库故障是否影响主库?表格关系型数据库主备高可用方案对比笔记 数据库高可用性解决方案对比 Oracle Data Guard Orac…...
怎么查看电脑显存大小(查看电脑配置)
这里提供一个简单的方法查看 winr打开cmd 终端输入dxdiag进入DirectX 点击显示查看设备的显示内存(VRAM) 用这个方法查看电脑配置和显存是比较方便的 dxdiag功能 Dxdiag是Windows的DirectX诊断工具,其主要作用包括但不限于以下几点&#…...
深入理解指针(二)
深入理解指针(二) 前言:一、const修饰指针1.const修饰变量2.const修饰的指针变量 二、野指针1.野指针的成因(1).指针的未初始化(2).指针的越界访问(3).指针的空间释放 2.如何规避野指针(1).指针初始化(2).小心访问越界(3)指针不再使用的时候&…...
非华为电脑制作一碰传NFC贴纸
前提: 在笔记本上安装好华为电脑管家,可以在 github 上下载,并测试可以正常和手机或平板连接步骤: 1、打开电脑华为电脑管家,点【快捷服务】,记录下序列号,一般安装后会生成16位的序列号 2、…...
Wpf美化按钮,输入框,下拉框,dataGrid
Wpf美化按钮,输入框,下拉框,dataGrid 引用代码后 引用资源 <ControlTemplate x:Key"CustomProgressBarTemplate" TargetType"ProgressBar"><Grid><Border x:Name"PART_Track" CornerRadius&q…...
Office/WPS接入DeepSeek等多个AI工具,开启办公新模式!
在现代职场中,Office办公套件已成为工作和学习的必备工具,其功能强大但复杂,熟练掌握需要系统的学习。为了简化操作,使每个人都能轻松使用各种功能,市场上涌现出各类办公插件。这些插件不仅提升了用户体验,…...
【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)
目录 一、引言 二、MMoE(Multi-gate Mixture-of-Experts,多门混合专家网络) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…...
git submodule使用
git submodule 用于关联其他独立的仓库。 它有着几点好处: 代码复用:可以将工具代码放到单独的仓库,再通过 submodule 关联。模块化开发:可以将项目拆分成多个模块,每个模块设置单独仓库独立开发,再通过 su…...
朝天椒USB服务器:解决加密狗远程连接
本文探讨朝天椒USB服务器用Usb Over Network技术,解决加密狗在虚拟机、云主机甚至异地的远程连接问题。 在企业数字化转型的浪潮中,加密狗作为防止软件盗版的重要手段,广泛应用于各类软件授权场景。然而,随着企业超融合进程不断加…...
[笔记.AI]deepseek-r1的不同版本(满血版、蒸馏版、量化)
满血版:是原始的高性能模型; 蒸馏版(Distill):是指将大型模型(教师模型)的知识转移到较小的模型(学生模型)中,以保持性能的同时减少计算资源的需求࿱…...
Kokoro 开源文本转语音引擎上线!多语言支持,无需联网,浏览器内极速运行
Kokoro 是一款轻量级的开源文本转语音(TTS)引擎,凭借其高效能和轻量化设计,迅速在技术社区中引起关注。本文将详细介绍 Kokoro 的主要特点,并提供在浏览器和 Python 环境中的代码示例,帮助您快速上手。 1. Kokoro:可在浏览器中运行的 TTS 引擎 1.1 简介 Kokoro 是一个…...
Unity 基础编程
在这个练习中将新建unity脚本,控制player的运动与转动,实现用代码检测碰撞与删除物体。 该练习将应用附件中的项目文件,该文件与Unity快速练习的文件是同一个项目文件。 一、构建Player运动脚本 该部分将构建一个在场景中由玩家控制游戏物…...
CTFHub-RCE系列wp
目录标题 引言什么是RCE漏洞 eval执行文件包含文件包含php://input读取源代码远程包含 命令注入无过滤过滤cat过滤空格过滤目录分隔符过滤运算符综合过滤练习 引言 题目共有如下类型 什么是RCE漏洞 RCE漏洞,全称是Remote Code Execution漏洞,翻译成中文…...
基于YoloV11和驱动级鼠标模拟实现Ai自瞄
本文将围绕基于 YoloV11 和驱动级鼠标实现 FPS 游戏 AI 自瞄展开阐述。 需要着重强调的是,本文内容仅用于学术研究和技术学习目的。严禁任何个人或组织将文中所提及的技术、方法及思路应用于违法行为,包括但不限于在各类游戏中实施作弊等违规操作。若因违…...
基于微信小程序的博物馆预约系统的设计与实现
hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 🦁作者简介:一名喜欢分享和记录学习的在校大学生…...
R语言LCMM多维度潜在类别模型流行病学研究:LCA、MM方法分析纵向数据
全文代码数据:https://tecdat.cn/?p39710 在数据分析领域,当我们面对一组数据时,通常会有已知的分组情况,比如不同的治疗组、性别组或种族组等(点击文末“阅读原文”获取完整代码数据)。 然而,…...
python卷积神经网络人脸识别示例实现详解
目录 一、准备 1)使用pytorch 2)安装pytorch 3)准备训练和测试资源 二、卷积神经网络的基本结构 三、代码实现 1)导入库 2)数据预处理 3)加载数据 4)构建一个卷积神经网络 5࿰…...
如何把邮件批量导出到本地
最近遇到邮箱满了的问题,需要把邮件批量导出到本地,然后清空邮箱。 问题是这个邮箱的官网,没有批量导出按钮,比较麻烦;总不能一封一封下载到本地,上万的。 找到了一个好用的工具,Mozilla Thun…...
C++智能指针的使用
文章目录 智能指针的使用和原理智能指针的使用场景RAII和智能指针C标准库智能指针的使用 智能指针的使用和原理 智能指针的使用场景 1. 下面的程序中,new了以后,我们也delete了,但是因为抛异常导致后面的delete没有得到执行,所以…...
Docker安装Redis
一、保证Docker提起来了 systemctl status docker想这没有启动要先启动一下 systemctl status docke二、拉取Redis(默认拉最新版) sudo docker pull redis检查一下拉成功没有 docker images三、创建相关目录 mkdir -p /home/redis/{conf,data}四、…...
深入理解MySQL索引底层数据结构
文章目录 前言一、MySQL索引是什么?二、索引的核心需求三、MySQL为什么选择BTree做为数据结构1.如果使用的是Hash 做为数据结构2.如果使用二叉树做为数据结构3.使用红黑树做为数据结构4.使用B-Tree做为数据结构5.BTree做为数据结构 4.BTree深度剖析结构特性与 B-Tre…...
udp和tcp的区别
目录 UDP 和 TCP 的区别 1. 连接性 2. 可靠性 3. 数据传输顺序 4. 流量控制和拥塞控制 5. 效率 6. 应用场景 UDP 和 TCP 的 C/C 代码实现区别 1. TCP 服务器端和客户端 TCP 服务器端(Server) TCP 客户端(Client) 2. U…...
VMware 虚拟机 ubuntu 20.04 扩容工作硬盘
一、关闭虚拟机 关闭虚拟机参考下图,在vmware 调整磁盘容量 二、借助工具fdisk testubuntu ~ $ df -h Filesystem Size Used Avail Use% Mounted on udev 1.9G 0 1.9G 0% /dev tmpfs 388M 3.1M 385M 1% /run /dev/sda5 …...
MapReduce是什么?
MapReduce 是一种编程模型,最初由 Google 提出,旨在处理大规模数据集。它是分布式计算的一个重要概念,通常用于处理海量数据并进行并行计算。MapReduce的基本思想是将计算任务分解为两个阶段:Map 阶段和 Reduce 阶段。 Map 阶段&a…...
跨越边界,大模型如何助推科技与社会的完美结合?
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 概述 2024年,大模型技术已成为人工智能领域的焦点。这不仅仅是一项技术进步,更是一次可能深刻影响社会发展方方面面的变革。大模型的交叉能否推动技术与社会的真正融合?2025年…...
计算机毕业设计SpringBoot校园二手交易小程序 校园二手交易平台(websocket消息推送+云存储+双端+数据统计)(源码+文档+运行视频+讲解视频)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
RK3568平台开发系列讲解(ConfigFS篇)ConfigFS核心数据结构
🚀返回专栏总目录 文章目录 一、数据结构二、结构体关系三、案例3.1、configfs_subsystem 实例3.2、config_group 实例化四、属性和方法五、config_item实例化沉淀、分享、成长,让自己和他人都能有所收获!😄 理解 ConfigFS 的核心数据结构对于深入使用和定制 ConfigFS 非…...
【04】RUST特性
文章目录 隐藏shadowing所有权ownership堆区&栈区所有权规则变量&数据Copy Trait与Drop TraitCopy TraitDrop Trait移动克隆函数参数与返回值的所有权参数引用可变引用悬垂引用slice生命周期隐藏shadowing 有点像同名覆盖 let mut guess = String::new();let guess: u3…...
c语言函数学习
C语言函数学习笔记:从入门到实践 一、什么是函数? 函数是C语言中用于封装特定功能的代码块,是模块化编程的核心。通过函数可以实现: 代码复用:避免重复编写相同逻辑 逻辑清晰:将复杂程序分解为多个小模块…...
LSTM的介绍
网上一些描述LSTM文章看的云里雾里,只是介绍LSTM 的结构,并没有说明原理。我这里用通俗易懂的话来描述一下。 我们先来复习一些RNN的核心公式: h t t a n h ( W h h t − 1 W x x t b h ) h_t tanh(W_h h_{t-1} W_x x_t b_h) httan…...
XML DOM
XML DOM XML DOM(Document Object Model)是一种用于访问和操作XML文档的标准方式。它提供了一种树形结构来表示XML文档,使得开发者能够方便地对XML数据进行读取、修改和操作。本文将详细介绍XML DOM的基本概念、结构、操作方法以及应用场景。 一、XML DOM的基本概念 XML …...
认识网络安全
一 网络攻击链 踩点-工具准备-载荷投递-漏洞利用-释放载荷-建立通道-目标达成 简化下: 目标侦察:准确识别目标,收集目标详细信息,比如 网络、 邮箱、员工、社会关系、对外提供服务、漏洞 信息等,为 后续攻击做准备。…...