Android读写权限分析
Android系统使用的是Linux内核,所以Android系统沿用了linux系统的那一套文件读写权限。
目录
- 1,权限解读
- 1.1,权限分为三种类型:
- 1.2,权限针对的三类对象:
- 1.3,文件和目录的权限区别
- 1.3.1,对于文件
- 1.3.2,对于目录
- 1.4,权限查看实例
- 1.4.1,文件类型和权限信息
- 1.4.2,链接数
- 1.4.3,所有者
- 1.4.4,所属组
- 1.4.5,文件大小
- 1.4.6,时间戳
- 1.4.7,文件名
- 2,权限操作
- 2.1,指令修改
- 2.1.1,方法一
- 2.1.2,方法二
- 2.1.3,方法三
- 2.1.4,目录递归赋权限
- 2.2,代码修改
- 2.2.1,Java层实现
- 2.2.2,C++层实现
1,权限解读
在Linux系统中,读写权限是用来控制用户对文件或目录的访问权限的一种机制。按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件或目录进行访问和操作。
上面的这张图,涉及到一个文件linux权限的基本信息,包括文件类型、文件权限、以及对应的用户组等信息。
1.1,权限分为三种类型:
Read,读权限,缩写r
Write,写权限,缩写w
Execute,执行权限,缩写x
另,root用户不受文件权限的读写权限限制,但执行权限也会受限制。
1.2,权限针对的三类对象:
owner,文件所属主,缩写u
group,用户所属组,缩写g
other,其他不相关用户,缩写o
1.3,文件和目录的权限区别
对于文件和目录,r、w、x有着稍微不同的作用和含义:
1.3.1,对于文件
r:代表可读(read),可以读取、查看;
w:代表可写(write), 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件;
x:代表可执行(execute),可以被执行;
1.3.2,对于目录
r:代表可读(read),可以读取,ls 查看目录内容;
w:代表可写(write),可以修改,对目录内创建+删除+重命名目录;
x:代表可执行(execute),可以进入该目录;
1.4,权限查看实例
adb登录android系统,通过ls -l查看,如果是linux系统,也可以 ll指令查看。
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rw-r--r-- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrwxrwx 2 root root 4096 2019-01-01 00:33 testdir1
mt2712_saic_as33:/data/testrwx #
上面查询到的信息,一共分为7列。
1.4.1,文件类型和权限信息
第一列,第一个字符表示的是文件类型,其可能是普通文件、目录、符号链接等,可能的值如下:
-:普通文件,如上面的adbd文件的信息中,一个字符就是-
d:目录
l:符号链接
b:块设备文件
c:字符设备文件
s:套接字文件
p:命令管道文件
其余的字符分为三组,每组三个字符,分别代表文件所有者的权限、组内其他用户的权限和其他用户的权限。每组字符的含义如下:
r:可读权限(4)
w:可写权限(2)
x:可执行权限(1)
-:无权限(0)
整理第一列的权限表示如下表格式:
如前面adbd文件的权限为-rw-r–r–,参照上面的表,解读为adbd是个文件,所有者对这个文件可读可写不可执行,所属组用户对文件可读不可写不可执行,其他用户也对此文件可读不可写不可执行。
如果用数字来表示adbd文件权限,二进制应该为110100100,十进制应该为644。
1.4.2,链接数
这一列显示了文件的硬链接数。对于目录,这一列显示了目录下的子目录数。如果是普通文件,这一列显示为-。
1.4.3,所有者
这一列显示了文件的所有者用户名,如上面截图里的实际情况,为root用户,因为本人是root后adb登录创建的文件。
1.4.4,所属组
这一列显示了文件所属的用户组名称,如上面截图里的实际情况,为root组,因为本人是root后adb登录创建的文件。
1.4.5,文件大小
这一列显示了文件的大小,以字节为单位。对于目录,这一列显示为4096,为啥是4096呢??因为在 Linux/Android 系统中,目录本身是一种特殊类型的文件,它存储的是目录条目,系统会给目录分配固定大小的块(block),而默认block大小就是4096字节。
1.4.6,时间戳
这一列显示了文件的最后修改时间或最后访问时间,分为年月日和时分秒。具体显示的日期和时间取决于系统的配置和语言环境。
1.4.7,文件名
这一列显示了文件的名称。
2,权限操作
可以通过chmod指令来修改文件权限,或者也可以通过代码来修改。
2.1,指令修改
使用chmod指令修改,指令格式:chmod [选项] <文件名>
以如下adbd文件为例,修改前权限为:
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rw-r--r-- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrwxrwx 2 root root 4096 2019-01-01 00:33 testdir1
mt2712_saic_as33:/data/testrwx #
有几种修改方式,如下。
2.1.1,方法一
示例执行指令chmod 776 adbd
mt2712_saic_as33:/data/testrwx # chmod 776 adbd
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rwxrwxrw- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrwxrwx 2 root root 4096 2019-01-01 00:33 testdir1
mt2712_saic_as33:/data/testrwx #
可以看到adbd文件由-rw-r–r–变成了-rwxrwxrw-
2.1.2,方法二
上面是用776数字的方式来表示rwxrwxrw-权限,也可以不用数字而是直接用rwx方式来表示,示例如
mt2712_saic_as33:/data/testrwx # chmod u=rwx,g=rw,o=r adbd
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rwxrw-r-- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrwxrwx 2 root root 4096 2019-01-01 00:33 testdir1
mt2712_saic_as33:/data/testrwx #
在执行chmod u=rwx,g=rw,o=r adbd指令后,adbd权限就变成了rwxrw-r–
文件权限的值可以通过字符也可以通过数字来表示,示例如下:
字符:rwx rw- r--
数字:111 110 1007 6 4
2.1.3,方法三
指令格式:chmod [who opt per] file
这里的who、opt、per可能的值分别为:
who:u g o a //u表示文件所有者,g表示与文件所有者属于同一组的其他用户,o表示其他用户opt:+ – = // + 、-、= 变更权限,+是增加,-是除去,=相同per:r w x X //读、写、执行
示例如下
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rwxrw-r-- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrwxrwx 2 root root 4096 2019-01-01 00:33 testdir1
mt2712_saic_as33:/data/testrwx # chmod o+w adbd
mt2712_saic_as33:/data/testrwx #
mt2712_saic_as33:/data/testrwx #
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rwxrw-rw- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrwxrwx 2 root root 4096 2019-01-01 00:33 testdir1
mt2712_saic_as33:/data/testrwx #
这里的chmod o+w adbd,是指给文件adbd文件的other用户添加w写权限,所以权限从rwxrw-r–变成了rwxrw-rw-。
2.1.4,目录递归赋权限
上面介绍的一直是文件的权限,对于目录的权限也是一样的操作方式,对于目录-R是常用的一个参数,用于目录递归赋值权限。
示例,testdir1目录下还有个子目录testdir2目录,通过chmod -R XXX 目录,递归赋值权限
mt2712_saic_as33:/data/testrwx/testdir1 # ls -l
total 4
drw-rw---- 2 root root 4096 2019-01-01 01:56 testdir2 //子目录testdir2原始权限为660
mt2712_saic_as33:/data/testrwx # chmod -R 766 testdir1 //对testdir1以及其子目录都赋值766权限
mt2712_saic_as33:/data/testrwx # ls -l
total 1724
-rwxrw-rw- 1 root root 1759120 2024-11-25 12:42 adbd
lrwxrwxrwx 1 root root 17 2019-01-01 00:08 linktest -> data/testlink.txt
drwxrw-rw- 3 root root 4096 2019-01-01 01:56 testdir1
mt2712_saic_as33:/data/testrwx # cd testdir1/
mt2712_saic_as33:/data/testrwx/testdir1 # ls -l
total 4
drwxrw-rw- 2 root root 4096 2019-01-01 01:56 testdir2 子目录testdir2修改后权限为766
mt2712_saic_as33:/data/testrwx/testdir1 #
2.2,代码修改
2.2.1,Java层实现
因为是对系统得文件做操作,可能会遇到操作权限得问题,比如permission权限和selinux,这些根据实际使用时报错来定位解决。java层实现方式如下所示:
try {String command = "chmod 777 " + destFile.getAbsolutePath();Log.i("test", "command = " + command);Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(command);} catch (IOException e) {Log.i("test","chmod fail!!!!");e.printStackTrace();}
或者
File file = new File(context.getFilesDir(), "example.txt");
// 设置可读权限(所有者、组、其他用户)
boolean isReadable = file.setReadable(true, false); // 参数2: 是否递归子项(仅限目录)
// 设置可写权限
boolean isWritable = file.setWritable(true, false);
// 设置可执行权限(通常用于脚本文件)
boolean isExecutable = file.setExecutable(true, false);
2.2.2,C++层实现
通过系统方法chmod(file,mode)修改文件权限,首先你这个服务得有权限修改这个文件,这个操作可能会遇到selinux权限问题。
...
#include <sys/stat.h>//头文件
...
int changeFileRWX(const char* file_path, mode_t mode) {...int result = chmod(file_path, (mode_t) mode); //需要文件路径和所需权限即可...
}
相关文章:
Android读写权限分析
Android系统使用的是Linux内核,所以Android系统沿用了linux系统的那一套文件读写权限。 目录 1,权限解读1.1,权限分为三种类型:1.2,权限针对的三类对象:1.3,文件和目录的权限区别1.3.1…...
计算机网络基础:量子通信技术在网络中的应用前景
计算机网络基础:量子通信技术在网络中的应用前景 一、前言二、量子通信技术基础2.1 量子通信的基本概念2.2 量子通信的主要原理2.2.1 量子密钥分发(QKD)原理2.2.2 量子隐形传态原理三、量子通信技术的特点3.1 绝对安全性3.2 超高通信速率潜力3.3 抗干扰能力强四、量子通信技…...
【算法学习计划】贪心算法(上)
目录 前言(什么是贪心) leetcode 860.柠檬水找零 leetcode 2208.将数组和减半的最少操作次数 leetcode 179.最大数 leetcode 376.摆动序列 leetcode 300.最长递增子序列 leetcode 334.递增的三元子序列 leetcode 674.最长连续递增序列 leetcode …...
Linux 目录结构(文件系统结构)示例说明
在Linux操作系统中,文件系统的结构是理解系统性能及管理的重要基础。每个目录都有它的特定用途,这使得系统管理更加清晰和高效。本文将带您逐步了解每一个重要目录及其功能。 1. 根目录 / 根目录是Linux文件系统的起点,所有文件和目录均从此…...
Linux下的socket演示程序2
server.cpp #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h>#define SER_PORT 8888 //服务器端口号 #define SER_IP "10.148.4.168" //服…...
TiDB与Doris实操对比:深度剖析数据库选型要点
TiDB与Doris实操对比:深度剖析数据库选型要点 宝子们,在大数据处理的广阔天地里,TiDB和Doris都是备受瞩目的数据库解决方案。它们各自有着独特的优势和适用场景,对于我们开发者来说,深入了解它们的实操特性࿰…...
How to install vmware workstation pro on Linux mint 22
概述 VMware 是一家专注于虚拟化技术和云计算解决方案的全球领先软件公司,成立于1998年,总部位于美国加州。它的核心技术是通过“虚拟化”将一台物理计算机的硬件资源(如CPU、内存、存储等)分割成多个独立的虚拟环境(…...
redis常用部署架构之redis分片集群。
redis 3.x版本后开始支持 作用: 1.提升数据读写速度 2..提升可用性 分片集群就是将业务服务器产生的数据储存在不同的机器上。 redis分片集群的架构 如上图所示,会将数据分散存储到不同的服务器上,相比于之前来说,redis要处…...
vim的一般操作(分屏操作) 和 Makefile 和 gdb
目录 一. vim的基本概念 二. vim基础操作 2.1 插入模式 aio 2.2 [插入模式]切换至[正常模式] Esc 2.3[正常模式]切换至[末行模式] shift ; 2.4 替换模式 Shift R 2.5 视图(可视)模式 (可以快速 删除//注释 或者 增加//注释) ctrl v 三&…...
DeepSeek 为何能在短时间内超过 ChatGPT?—— 技术变革与成本重构的双重胜利
2025 年 1 月 27 日,全球科技圈见证了一个历史性时刻:中国 AI 公司深度求索(DeepSeek)开发的同名应用,首次登顶美国苹果 App Store 免费下载榜,超越了长期霸榜的 ChatGPT。这一突破不仅打破了美国科技公司在…...
Wireshark学习
Wireshark简介 抓包前 1.打开wireshark得到下面的界面 2.选择菜单栏上捕获-> 选项,勾选WLAN网卡(这里需要根据各自电脑网卡使用情况选择,简单的办法可以看使用的IP对应的网卡)。点击开始。启动抓包。 3.wireshark启动后&am…...
我的创作纪念日——三周年
大家好,心心念念的三年之气已到,但是我似乎对于博客专家的身份没有那么渴望了哈哈。虽然最近比较忙,但是看到三周年纪念日的通知,还是想写一点什么,并不是因为三周年有多么值得纪念,而是这段时间确实有一些…...
Softmax 回归 + 损失函数 + 图片分类数据集
Softmax 回归 softmax 回归是机器学习另外一个非常经典且重要的模型,是一个分类问题。 下面先解释一下分类和回归的区别: 简单来说,分类问题从回归的单输出变成了多输出,输出的个数等于类别的个数。 实际上,对于分…...
基于云服务器的数仓搭建-hive/spark安装
mysql本地安装 安装流程(内存占用200M,升至2.1G) # 将资料里mysql文件夹及里面所有内容上传到/opt/software/mysql目录下 mkdir /opt/software/mysql cd /opt/software/mysql/ # 待上传文件 install_mysql.sh mysql-community-client-8.0.3…...
YOLO历代发展 图像增强方式 架构
YOLO1 YOLOV5 数据增强 mosaic 仿射变换(Affine)、透视变换(Perspective) 网络搭建...
Spring AI Alibaba EmbeddingModel使用
一、嵌入模型 (Embedding Model)简介 1、核心概念 嵌入模型(EmbeddingModel)是嵌入过程中采用的模型。 当前 EmbeddingModel的接口主要用于将文本转换为数值向量,接口的设计主要围绕这两个目标展开: 可移植性: 该接口…...
C++入门五式——类和对象(下)
目录 再探构造函数——初始化列表 类型转换 static成员 友元函数 内部类 匿名对象 再探构造函数——初始化列表 之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方式,就是初始化列表。 //初始化列…...
Spring的SPEL(Spring Expression Language)的使用说明,包含语法、示例和常见场景
以下是Spring的SPEL(Spring Expression Language)的使用说明,包含语法、示例和常见场景: 1. 基本语法 变量引用 表达式:#{变量名}(如#{systemProperties[os.name]})作用域:在Sprin…...
Linux应用:线程进阶
线程同步之信号量 信号量(Semaphore)是一个整型的计数器,用于控制对共享资源的访问。它通过 PV 操作来实现同步,P 操作将信号量的值减 1,如果值小于 0 则线程阻塞;V 操作将信号量的值加 1,如果…...
策略模式 (Strategy)
策略模式 (Strategy) 应用场景:用于处理不同的任务配置参数。在你的任务中,可能会有不同的任务类型,每个任务类型可能有不同的单位(比如米、毫米)或不同的处理方式。策略模式可以让你根据不同的任务类型选择不同的处理…...
【YOLOv8】YOLOv8改进系列(10)----替换主干网络之UniRepLKNet
主页:HABUO🍁主页:HABUO 🍁YOLOv8入门改进专栏🍁 🍁如果再也不能见到你,祝你早安,午安,晚安🍁 【YOLOv8改进系列】: YOLOv8改进系列࿰…...
mathtype一些用法总结
1.一个是公式旁边加入||,一般使用键盘直接打入的会比较小,mathtype中的会好看很多,打开这个栏目,会看到有很多。 2.另外是带^符号,在字符上面带没有办法直接带,所以可以在mathtype中先加帽子,然…...
1、SQL注入攻击的防范
原文地址: SQL注入攻击的防范 更多内容请关注:代码安全 PHP安全编码——书写安全的代码 1、SQL注入攻击的防范 提问 问题1:什么是SQL注入攻击? 问题2:有几种简单方法防范SQL注入攻击? 问题3:mys…...
核心知识——论文总结
引入 本文我们会针对论文中的核心内容进行总结,加深小伙伴对于Spark的理解。而通过Spark的论文,重点需要掌握理解如下内容: Spark 里核心的 RDD 是一个什么概念,它是通过什么方式来优化分布式数据处理的,它的设计思路…...
HTTP 核心知识点整理
1. HTTP 基础 定义:HTTP(HyperText Transfer Protocol)是应用层协议,基于 请求-响应模型,用于客户端(浏览器)与服务器之间的通信。特点: 无状态:每次请求独立&a…...
什么是矩阵账号
矩阵账号是指在同一平台或多个平台上,围绕同一品牌或个人,创建的多个相互关联、协同工作的账号组合。这些账号虽然独立,但在内容定位和运营策略上有所区分,同时又相互引流,共同形成一个网络结构,类似于矩阵…...
【6】VS Code 新建上位机项目---项目分层
【6】VS Code 新建上位机项目---项目分层 1 项目分层(layer)2 项目分层实现数据插入SQL3 项目分层实现 (实体类封装参数)4 项目分层的实现SQL查询数据1 项目分层(layer) 表示层(UI):与用户交互使用。比如按钮,输入信息等;业务层(BLL):传递数据,业务逻辑。根据用户需…...
EspressoSample深度解析:在CircleCI上高效运行Android UI测试
项目背景与简介 EspressoSample项目位于GitHub上的circleci/EspressoSample仓库,该项目旨在展示如何在CircleCI平台上配置和使用Espresso进行Android应用的UI测试。 项目结构与环境准备 项目结构 EspressoSample项目遵循典型的Android项目结构,包含a…...
【每日论文】MetaSpatial: Reinforcing 3D Spatial Reasoning in VLMs for the Metaverse
下载PDF或查看论文,请点击: LlamaFactory - huggingface daily paper - 每日论文解读 | LlamaFactory | LlamaFactory探索LlamaFactory,为你解读AI前沿技术文章,快速掌握最新技术动态https://www.llamafactory.cn/daily-paper/de…...
mac m4 Homebrew安装MySQL 8.0
1.使用Homebrew安装MySQL8 在终端中输入以下命令来安装MySQL8: brew install mysql8.0 安装完成后,您可以通过以下命令来验证MySQL是否已成功安装: 2.配置mysql环境变量 find / -name mysql 2>/dev/null #找到mysql的安装位置 cd /op…...
Java关于多态
多态 字面意思:对象的多种形态。 Student(子类)<-Person(父类)->Teacher(子类) Student snew Student(); 学生形态 对象 代表用new创建一个学生对象赋值给Student 类型,代表Student类型(学生对象)现在是学生形态。 有了多态之后ÿ…...
K8S学习之基础四十六:k8s中部署Kibana
部署kibana组件 上传kibina镜像到harbor 部署kibana组件,包括svc和deplomentvi kibana.yaml apiVersion: v1 kind: Service metadata:name: kibananamespace: kube-logginglabels:app: kibana spec:ports:- port: 5601selector:app: kibana --- apiVersion: apps/…...
如何快速对比两个不同的excel文件中的单元格的数据是否完全相同 并把不同的单元格的背景颜色更改为红色?
要快速对比两个不同的Excel文件中的单元格数据是否完全相同,并将不同的单元格背景颜色更改为红色,可以使用Excel的以下几种方法: 方法一:使用条件格式 打开两个Excel文件。将一个文件的内容复制到另一个文件的新工作表中&#x…...
基于Python+LanceDB实战向量搜索
本篇实战演示向量搜索的实现和示例。 预期效果 给出一个查询的字符串,通过向量搜索,在下面三个语句中搜索出关联性最大的那句。 "熊猫是中国的国宝,主要栖息在四川山区。","长城是古代中国建造的军事防御工事,全…...
多路转接epoll
目录 一、为什么epoll最高效? 二、epoll的三个系统调用 三、理解epoll模型 四、epoll的优点 五、epoll的使用示例 六、epoll的工作模式 ET模式和LT模式的对比 七、epoll的使用场景 总结 一、为什么epoll最高效? 按照 man 手册的…...
AI编程工具哪家强?对比Cusor、Copilot、Cline
前言 AI最先革谁的命?刚毕业参加工作的那个时候就在想是否可以开发一个程序让它自己写代码,在那个遥远的年代,这种想法仿佛就是天方夜谭。但是今天大模型的出现让理想成为了现实。回答前面的问题,AI最先革谁的命,最聪…...
[FPGA基础学习]实现流水灯与按键暂停
FPGA实现LED流水灯 1.vscode的安装和使用 vscode下载 Visual Studio Code - Code Editing. Redefined vscode插件(Verilog-HDL/SystemVerilog)下载 quartus绑定vscode 2.用6个LED完成周期为1秒的跑马灯效果 流水灯模块设计 时钟输入 DE2-115开发板…...
刷题记录(LeetCode 994.腐烂的橘子)
在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返回 直到单元格中没有…...
ECharts折线图源码合集1(共18个自定义图表),附视频讲解与代码下载
引言: 在数据可视化的世界里,ECharts凭借其丰富的图表类型和强大的配置能力,成为了众多开发者的首选。今天,我整理了18个自定义折线图图表,不仅对每个图表代码进行了精简优化,剥离冗余配置项,…...
SQL小菜之TOP N查找问题
前言 SQL的编写是后端面试中非常常见,其中TOP N查找问题也是高频出现的问题,今天我们来看两道SQL TOPN问题。 问题 我们有一张雇员表Employee: CREATE TABLE Employee (id int DEFAULT NULL,salary int DEFAULT NULL,department varchar(…...
蓝桥杯 临时抱佛脚 之 二分答案法与相关题目
二分答案法(利用二分法查找区间的左右端点) (1)估计 最终答案可能得范围 是什么 (2)分析 问题的答案 和 给定条件 之间的单调性,大部分时候只需要用到 自然智慧 (3)建…...
Css环形旋转立体感动画
Css环形旋转立体感动画 index.html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>Css环形旋转立体感动画</title><link rel"stylesheet" href"./style.css">&l…...
音乐极客指南:Melody高音质私有云音乐平台本地部署方案
文章目录 前言1. 添加镜像源2. 本地部署Melody3. 本地访问与使用演示4. 安装内网穿透5. 配置Melody公网地址6. 配置固定公网地址 前言 嘿,各位音乐爱好者们!今天我要带大家玩个大招——在香橙派Zero3上搭建你的专属在线音乐平台,还能通过cpo…...
Microi吾码界面设计引擎之基础组件用法大全【内置组件篇·中】
🎀🎀🎀 microi-pageengine 界面引擎系列 🎀🎀🎀 一、Microi吾码:一款高效、灵活的低代码开发开源框架【低代码框架】 二、Vue3项目快速集成界面引擎 三、Vue3 界面设计插件 microi-pageengine …...
# WebSocket 与 Socket.IO 对比与优化
核心概念对比 WebSocket 协议性质:HTML5 提供的全双工通信协议 (RFC 6455)连接方式:基于 TCP 的低层协议通信模式:持久化连接,服务端可主动推送协议升级:通过 HTTP 101 状态码切换协议 Socket.IO 协议性质…...
vue3中,route4,获取当前页面路由的问题
首先应用场景如下: 在main.js里面,引入的是路由的配置文件,如下: import {router} from /router; app.use(router); 路由配置文件router.js如下: import { createRouter, createWebHistory } from vue-router; imp…...
python将整个txt文件写入excel的一个单元格?
要将整个txt文件写入Excel的一个单元格,可以使用Python的openpyxl库来实现。以下是一个简单的示例代码: from openpyxl import Workbook# 读取txt文件内容 with open(file.txt, r) as file:txt_content file.read()# 创建一个新的Excel工作簿 wb Work…...
日志2333
Pss-9 这一关考察的是时间盲注 先练习几个常见命令语句: select sleep(5);--延迟5s输出结果 if (1>0,ture,false);--输出‘ture’ /if (1<0,ture,false);--输出‘false’ select ascii()/select ord()返回字…...
用Deepseek写扫雷uniapp小游戏
扫雷作为Windows系统自带的经典小游戏,承载了许多人的童年回忆。本文将详细介绍如何使用Uniapp框架从零开始实现一个完整的扫雷游戏,包含核心算法、交互设计和状态管理。无论你是Uniapp初学者还是有一定经验的开发者,都能从本文中获得启发。 …...
C++中的异常和智能指针
一、C中的异常 1.1C语言中关于错误的处理(回顾) 1.1.1处理一:文件中的错误码,错误信息 C语言中,文件打开成功则返回地址,不成功返回0 FILE* foutfopen("Test.txt","r"); cout<&…...