当前位置: 首页 > news >正文

LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)

示例

-- io模块是lua原生模块,LuatOS增加了一些API
-- 请配合os模块一起使用-- 只读模式, 打开文件
local fd = io.open("/xxx.txt", "rb")
-- 读写默认,打开文件
local fd = io.open("/xxx.txt", "wb")
-- 写入文件,且截断为0字节
local fd = io.open("/xxx.txt", "wb+")
-- 追加模式
local fd = io.open("/xxx.txt", "a")-- 若文件打开成功, fd不为nil,否则就是失败了
-- 注意, 刷机时所添加的文件, 均在 /luadb 目录下, 只读
if fd then-- 读取指定字节数,如果数据不足,就只返回实际长度的数据local data = fd:read(12)-- 按行读取local line = fd:read("*l")-- 全部读取local line = fd:read("*a")-- 数据写入, 仅w或a模式可调用-- 数据需要是字符串, lua的字符串是带长度的,可以包含任何二进制数据fd:write("xxxx") -- 以下是写入0x12, 0x13fd:write(string.char(0x12, 0x13))-- 移动句柄,绝对坐标fd:seek(1024, io.SEEK_SET)-- 移动句柄,相对坐标fd:seek(1024, io.SEEK_CUR)-- 移动句柄,反向绝对坐标,从文件结尾往文件头部算fd:seek(124, io.SEEK_END)-- 执行完操作后,一定要关掉文件fd:close()
end

io.exists(path)

判断文件是否存在

参数

传入值类型

解释

string

文件路径

返回值

返回值类型

解释

bool

存在返回true,否则返回false

例子

log.info("io", "file exists", io.exists("/boottime"))

io.fileSize(path)

获取文件大小

参数

传入值类型

解释

string

文件路径

返回值

返回值类型

解释

int

文件数据,若文件不存在会返回nil

例子

local fsize = io.fileSize("/bootime")
if fsize and fsize > 1024 thenlog.info("io", "file size", fsize)
end

io.readFile(path, mode, offset, len)

读取整个文件,请注意内存消耗

参数

传入值类型

解释

string

文件路径

string

读取模式, 默认 “rb”

int

起始位置,默认0

int

读取长度,默认整个文件

返回值

返回值类型

解释

string

文件数据,若文件不存在会返回nil

例子

local data = io.readFile("/bootime")
-- 注意: offset和len参数是 2023.6.6添加的
-- 读取abc.txt, 先跳过128字节, 然后读取512字节数据
local data = io.readFile("/abc.txt", "rb", 128, 512)

io.writeFile(path, data)

将数据写入文件

参数

传入值类型

解释

string

文件路径

string

数据

返回值

返回值类型

解释

boolean

成功返回true, 否则返回false

例子

io.writeFile("/bootime", "1")

io.fill(buff, offset, len)

读取文件并填充到zbuff内,但不移动指针位置

参数

传入值类型

解释

userdata

zbuff实体

int

写入的位置,默认是0

int

写入的长度,默认是zbuff的len减去offset

返回值

返回值类型

解释

boolean

成功返回true,否则返回false

int

返回实际读取到的长度,如果小于0也说明是读取失败了

例子

local buff = zbuff.create(1024)
local f = io.open("/sd/test.txt")
if f thenf:fill(buff)
end

io.mkfs(path)

格式化文件系统,需指定挂载点

参数

传入值类型

解释

string

挂载点

返回值

返回值类型

解释

bool

成功与否

int

底层返回值

例子

local ret, errio = io.mkfs("/sd")
log.info("fs", "mkfs", ret, errio)

io.mkdir(path)

创建文件夹

参数

传入值类型

解释

string

需要建立的目录路径

返回值

返回值类型

解释

bool

成功与否

int

底层返回值

例子

local ret, errio = io.mkdir("/data/")
log.info("fs", "mkdir", ret, errio)

io.rmdir(path)

删除文件夹

参数

传入值类型

解释

string

需要移除的目录路径

返回值

返回值类型

解释

bool

成功与否

int

底层返回值

例子

local ret, errio = io.rmdir("/data/")
log.info("fs", "rmdir", ret, errio)

io.lsdir(path, len, offset)

列出目录下的文件

参数

传入值类型

解释

string

需要枚举的目录路径

int

最大长度, 默认10, 最高50

int

偏移量, 默认0, 当目录文件很多时分页查询用

返回值

返回值类型

解释

bool

成功与否

int

底层返回值

例子

local ret, data = io.lsdir("/data/", 10, 0)
if ret thenlog.info("fs", "lsdir", json.encode(data))
elselog.info("fs", "lsdir", "fail", ret, data)
end

io.lsmount()#

列出所有挂载点

参数

返回值

返回值类型

解释

table

挂载点列表

例子

local data = io.lsmount()
log.info("fs", "lsmount", json.encode(data))

相关文章:

LuatOS-SOC接口文档(air780E)-- io - io操作(扩展)

示例 -- io模块是lua原生模块,LuatOS增加了一些API -- 请配合os模块一起使用-- 只读模式, 打开文件 local fd io.open("/xxx.txt", "rb") -- 读写默认,打开文件 local fd io.open("/xxx.txt", "wb") -- 写入文件,且截断为0字节 loc…...

【数据结构】线性表(六)堆栈:顺序栈及其基本操作(初始化、判空、判满、入栈、出栈、存取栈顶元素、清空栈)

文章目录 一、堆栈1. 定义2. 基本操作 二、顺序栈0. 顺序表1. 头文件和常量2. 栈结构体3. 栈的初始化4. 判断栈是否为空5. 判断栈是否已满6. 入栈7. 出栈8. 查看栈顶元素9. 清空栈10. 主函数11. 代码整合 堆栈Stack 和 队列Queue是两种非常重要的数据结构,两者都是特…...

父组件可以监听到子组件的生命周期吗?

在 Vue 中,父组件是可以监听到子组件的生命周期的。Vue 提供了一些特殊的钩子函数,可以在父组件中监听子组件的生命周期事件。 以下是一些常用的方法来监听子组件的生命周期: 1:使用$emit: 在子组件的生命周期钩子函数中,使用 $emit 方法触发自定义事件,向父组件发送通…...

[开源]MIT开源协议,基于Vue3.x可视化拖拽编辑,页面生成工具

一、开源项目简介 AS-Editor 基于 Vue3.x 可视化拖拽编辑,页面生成工具。提升前端开发效率,可集成至移动端项目作为通过定义 JSON 直接生成 UI 界面。 二、开源协议 使用MIT开源协议 三、界面展示 四、功能概述 基于Vue可视化拖拽编辑,…...

【C++ Primer Plus学习记录】数组的替代品

目录 1.模板类vector 2.模板类array(C11) 3.比较数组、vector对象和array对象 模板类vector和array是数组的替代品。 1.模板类vector 模板类vector类似于string类,也是一种动态数组。您可以在运行阶段设置vector对象的长度,可…...

JSP免杀马

JSP免杀马 随着Java框架的进化和程序员的内卷,使用PHP编写的系统越来少,使用Java编写的系统越来越多。JSP马的使用越来越多,但是就目前来看,各大厂商对JSP马的查杀效果还是不尽人意。这里简单通过Java的反射机制和ClassLoader技术…...

2023-10-16 node.js-调用python-记录

NodeJS 作为后端,仅在需要时调用 Python 在某些特殊的场景下,比如复杂耗时的数据处理和运算时,我们可以用 Python 脚本编写,然后使用 Node 的子进程调用 Python 脚本即可,这样可以提升效率。如下代码,我们…...

Kotlin 设置和获取协程名称

1,设置写成名称 创建协程作用域是或者创建协程是有个上下文参数(context: CoroutineContext) 创建协程作用域 CoroutineScope(Dispatchers.IO CoroutineName("协程A"))//Dispatchers.IO根据实际情况设置可有可无 源码&#xf…...

awk命令的使用

1.概念: awk是Linux以及UNIX环境中现有的功能最强大的数据处理工具 awk是一种处理文本数据的编程语言。awk的设计使得它非常适合于处理由行和列组成的文本数据 awk程序可以读取文本文件,对数据进行排序,对其中的数值执行计算以及生成报表等…...

【面试系列】Vue

引言:下面是一些常见的 Vue 面试题和对应的答案 目录 1. Vue 是什么?它有哪些特点?2. Vue 的生命周期有哪些?请简要描述每个生命周期的作用。3. Vue 组件间通信的有哪些方式?4. Vue 的 computed 和 watch 的区别是什么…...

揭开MyBatis的神秘面纱:掌握动态代理在底层实现中的精髓

一日小区漫步,我问朋友:Mybatis中声明一个interface接口,没有编写任何实现类,Mybatis就能返回接口实例,并调用接口方法返回数据库数据,你知道为什么不? 朋友很是诧异:是啊&#xff…...

结合领域驱动设计,理解TOGAF之架构方法论

TOGAF(The Open Group Architecture Framework)是一个开放的架构方法论,旨在支持组织制定和实施企业架构。它提供了一种框架来创建和管理企业架构,并包含了一组最佳实践,帮助组织实现其业务目标。 TOGAF框架包括四个主…...

Vue-vue项目Element-UI 表单组件内容要求判断

整体添加判断 <el-formref"ruleFormRef":model"formModel"class"demo-ruleForm"label-position"top"status-icon:rules"rules"><el-form-item label"姓名" prop"applyUsers" class"form-…...

【试题027】C语言宏定义小例题

1.题目&#xff1a; #define MOD(a,b) a%b int main() { int x4,y16,z; zMOD(y,x); printf("%dn".z)&#xff1b;} 则程序执行的结果是? 2.代码分析&#xff1a; #include <stdio.h> #define MOD(a,b) a%b int main() {int x 4, y 16, z;z MOD(y, …...

解决 sharp: Installation error: unable to verify the first certificate

使用 plasmo 时报错如下&#xff1a; E:\chromeplugins>pnpm create plasmo ../.pnpm-store/v3/tmp/dlx-46852 | 2 ../.pnpm-store/v3/tmp/dlx-46852 | Progress: resolved 2, reused 2, downloaded 0, added 2, done &#x1f7e3; Plasmo v0.83.0 &…...

【Java】Java实现100万+ 的高并发、高性能设计

Java实现100万 的高并发、高性能设计 1、简述 现百万级并发编是一项综合性的技术&#xff0c;同时&#xff0c;它与现实生活中 的场景有着紧密的联系。 搞懂并发编程有三大核心问题 分工问题 同步问题 互斥问题 本文就对这三大核心问题进行简单的介绍 2、分工问题 关于分工…...

linux系统下,在vscode的命令行中调试python文件

首先参考vscode官网文档Command line debugging 步骤 1&#xff08;只需一次&#xff09;&#xff1a;安装debugpy 步骤 2&#xff1a;在命令行中运行 python -m debugpy --listen 5678 --wait-for-client -m dir1.dir2.your_script 以上命令使用了端口5678&#xff0c;也可…...

DFS(分布式文件系统)与 DFSR(分布式文件系统复制)的区别

DFS&#xff08;分布式文件系统&#xff09;和 DFSR&#xff08;分布式文件系统复制&#xff09;是两种不同的技术&#xff0c;尽管它们在名称上有一些相似之处&#xff0c;但它们的用途和功能有所不同。 DFS&#xff08;分布式文件系统&#xff09; DFS 是一种用于创建和管理…...

丈母娘说:有编制的不如搞编程的

10月17日百度世界大会召开&#xff0c;据说文心大模型又牛X了&#xff0c;综合水平相比GPT4毫不逊色&#xff0c;真是个让人激动的消息&#xff0c;国产大模型的进展可以说是日新月异&#xff0c;我这耳朵边一直响彻四个字&#xff1a;遥遥领先。 不过今天我关注的重点不是什么…...

vue 部署后 405 not allowed

关于部署vue项目dist包&#xff0c;在nginx配置遇到的坑&#xff1a; 1.vue项目中vue.config.js的配置&#xff1a;devServer.proxy 可以是一个指向开发环境 API 服务器的字符串&#xff1a; evServer: {proxy: {/prod-api: {target: http://192.168.0.68:38090;,changeOrigi…...

【限时免费】20天拿下华为OD笔试之【回溯】2023Q1-硬件产品销售方案【欧弟算法】全网注释最详细分类最全的华为OD真题题解

【回溯】2023Q1-硬件产品销售方案 题目描述与示例 题目描述 某公司目前推出了 AI 开发者套件、AI 加速卡、AI 加速模块、AI 服务器、智能边缘多种硬件产品&#xff0c;每种产品包含若干个型号。现某合作厂商要采购金额为 amount 元的硬件产品搭建自己的 AI 基座。假设当前库…...

蜻蜓c影视追剧系统-多个小程序添加说明

多小程序添加设置 蜻蜓c影视追剧 支持多小程序添加&#xff0c;也就是可以管理不同前端的小程序。 此处id 对应前端小程序的mp值 关于添加小程序&#xff1a; 此处有所有填写内容的参考方式&#xff0c;要注意是必须开通了微信支付才可以添加&#xff0c;这里需要添加证书信息…...

linux 测试存储介质.emmc.nand.ufs.硬盘的读写速度方法

一、测试写速度 创建一个test.sh脚本 #!bin/bashcnt1 while [ $cnt -lt 50 ] // 循环50次 doecho "dd cnt $cnt" > /dev/consoledd if/dev/zero of/rawdata/test_${cnt}.txt bs1024 count102400//往储存介质分配的一个rawdata分区&#xff0c;写文件&#xff0…...

基于 KubeSphere 部署 KubeBlocks 实现数据库自由

作者&#xff1a;尹珉&#xff0c; KubeSphere Contributor & Ambassador&#xff0c;KubeSphere 社区用户委员会杭州站站长。 KubeSphere 是什么&#xff1f; KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统&#xff0c;完全开源&#xff0c;支持…...

图像识别-人脸识别与疲劳检测 - python opencv 计算机竞赛

文章目录 0 前言1 课题背景2 Dlib人脸识别2.1 简介2.2 Dlib优点2.3 相关代码2.4 人脸数据库2.5 人脸录入加识别效果 3 疲劳检测算法3.1 眼睛检测算法3.3 点头检测算法 4 PyQt54.1 简介4.2相关界面代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是…...

高性能计算与多模态处理的探索之旅:英伟达GH200性能优化与GPT-4V的算力加速未来

★多模态大模型&#xff1b;GPU算力&#xff1b;LLMS&#xff1b;LLM&#xff1b;LMM&#xff1b;GPT-4V&#xff1b;GH200&#xff1b;图像识别&#xff1b;目标定位&#xff1b;图像描述&#xff1b;视觉问答&#xff1b;视觉对话&#xff1b;英伟达&#xff1b;Nvidia&#…...

代码随想录算法训练营Day59|动态规划17

代码随想录算法训练营Day59|动态规划17 文章目录 代码随想录算法训练营Day59|动态规划17一、647. 回文子串二、516.最长回文子序列 一、647. 回文子串 class Solution {public int countSubstrings(String s) {boolean[][] dp new boolean[s.length()][s.length()];int res …...

软考 系统架构设计师系列知识点之软件构件(2)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之软件构件&#xff08;1&#xff09; 所属章节&#xff1a; 第2章. 计算机系统基础知识 第3节. 计算机软件 2.3.7 软件构件 3. 商用构件的标准规范 当前&#xff0c;主流的商用构件标准规范包括对象管理组织&#xff…...

【试题011】C语言多个运算符计算例题

1.题目&#xff1a;表达式1!23/45%6(78)9的值是&#xff1f; 2.代码&#xff1a; #include <stdio.h> int main() {//表达式1 !2 3 / 4 5 % 6 (7 8) 9的值printf("%d\n", (1 !2 3 / 4 5 % 6 (7 8) 9));//分析&#xff1a;多个运算符先考虑优先级…...

win10系统同时安装 vue2和vue3

https://www.cnblogs.com/xiaohuasan/p/16030569.html...