#include <json-c/json.h><json-c/json.h> 是 JSON-C 库 的主要头文件,用于在 C 语言中 解析、生成和操作 JSON 数据。它是 Linux 系统下最常用的 JSON 处理库之一。 1. 核心功能 功能 关键函数/对象 用途 JSON 对象创建 json_object_new_*() 创建各种类型的 JSON 对象 JSON 解析 json_tokener_parse() 将 JSON 字符串解析为 JSON 对象 JSON 生成 json_object_to_json_string() 将 JSON 对象转换为 JSON 字符串 对象操作 json_object_object_*() 操作 JSON 对象中的键值对 数组操作 json_object_array_*() 操作 JSON 数组 类型检查 json_object_get_type() 获取 JSON 对象的类型 2. 安装 JSON-C在 Linux 上安装: 12345# Debian/Ubun ...
#include <unistd.h>1.介绍 <unistd.h>(UNIX Standard Header)是 POSIX 操作系统 API 的核心头文件之一,主要用于 Unix/Linux 系统编程。它提供了大量与 系统调用(System Calls) 相关的函数,涵盖 文件操作、进程控制、系统信息、终端管理、管道通信 等核心功能。 功能类别 主要函数 文件操作 read(), write(), close(), unlink(), lseek(), fsync() 进程控制 fork(), exec(), getpid(), getppid(), exit(), _exit(), wait() 系统信息 gethostname(), getcwd(), chdir(), sysconf() 时间管理 sleep(), usleep()(已弃用,建议用 nanosleep()) 终端/设备管理 isatty(), ttyname(), tcgetpgrp(), tcsetpgrp() 管道通信 pipe ...
vue 源码分析注:来自 GitHubvue 源码逐行注释分析),仅仅用来学习使用 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818 ...
实现可过期的 localstorage 数据 localStorage 默认不会过期,数据会一直保留,除非用户手动清除。因此要实现 具有过期机制的 localStorage 缓存 主要有两种解决办法: 惰性删除 定时删除 1.惰性删除1.含义:只有在读取某个键值时才判断其是否过期,若过期则删除该项并返回空值 2.实现思路 存储数据时,将数据和过期时间一起存入(如使用一个对象 { value, expire })。 获取数据时,检查 expire 是否早于当前时间,若过期则删除该项。 3.优缺点优点:实现较为简单,不需要额外的定时器 缺点:如果莫一条数据一直没有被读取到,那么可能就不会被删除,会占用内存 4.代码实现123456789101112131415161718192021// 传入的experies是秒数function setItem(key, value, expires) { const data = { value: value, // 注意:这里的Date.now()返回的是毫秒数, 所以乘以1000转换为 ...
playwright 测试一.准备工作1.项目安装相应的包1npm init playwright@latest 2.进行可视化操作1npx playwright test --ui 二.知识准备Locator | Playwright 中文网 上面这个网站记录很多的 api 方法 行动 描述 locator.check() 检查输入复选框 locator.click() 单击该元素 locator.uncheck() 取消选中输入复选框 locator.hover() 将鼠标悬停在元素上 locator.fill() 填写表单字段,输入文本 locator.focus() 聚焦元素 locator.press() 按单个键 locator.setInputFiles() 选择要上传的文件 locator.selectOption() 在下拉菜单中选择选项
three.js一.认识three.js 未使用框架开发 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657import * as THREE from "three";import "./style.css";// 创建一个场景const scene = new THREE.Scene();// 创建一个相机const camera = new THREE.PerspectiveCamera( // 视野角度 75, // 视口宽高比 window.innerWidth / window.innerHeight, // 近裁剪面 0.1, // 远裁剪面 1000);// 创建一个渲染器const render = new THREE.WebGLRenderer();// 设置渲染器的大小render.setSize(window.innerWidth, window. ...
HTML-CSS-补充学习一. HTML 语义化标签 标签 语义/用途 示例 适用场景 页面结构 <header> 定义页面或区域的头部(如网站标题、导航栏) <header><h1>网站标题</h1><nav>...</nav></header> 页面顶部、文章/章节标题区域 <nav> 定义导航链接区域 <nav><ul><li><a href="#">首页</a></li></ul></nav> 网站主导航、侧边栏导航 <main> 定义页面主要内容(一个页面只能有一个) <main><article>...</article></main> 页面核心内容区域 <article> 定义独立的内容块(如博客文章、新闻) <article>& ...
微信小程序页面实现分享功能 微信小程序实现页面的分享功能有两种实现方式:: 监听用户点击页面内转发按钮(button 组件 open-type="share"),并自定义转发内容。 使用onShareAppMessage实现页面的分享功能,完整的文档可前往小程序文档中心查看onShareAppMessage 一.使用自定义的分享方式(用户点击页面内的按钮进行分享):在需要分享的页面中添加一个按钮button: 属性为 open-type="share" 在微信小程序的页面的 js 文件中添加一个函数:onShareAppMessage(Object object) 二.使用默认的分享方式在微信小程序的页面的 js 文件中添加一个函数:onShareAppMessage(Object object) 相较于上面的少了添加 button 按钮 代码展示: 12345678910111213141516171819202122232425262728293031323334353637Page({ data: { ac ...
window全局属性name📖 window.name 定义:window.name 是 window 对象的一个 可读写字符串属性。 作用:表示当前浏览上下文(即浏览器窗口或标签页)的名字。 默认值:空字符串 ""。 类型:始终是字符串。 🔑 特点 用于窗口/标签页的标识 当你在 <a target="name"> 或 window.open(url, "name") 里指定的 name 值,就是和 window.name 绑定的。 如果有一个已存在的窗口/标签页的 window.name 值等于 "myWin",那么 window.open(url, "myWin") 就会在那个窗口里打开。 如果没有,就会新建一个窗口,并把它的 window.name 设置为 "myWin"。 持久化特性 window.name 的值在 页面跳转时不会丢失(即使跳转到不同域名的页面,值仍然保留)。 这在以前被用来做 跨页面数据传递。 ...
JavaScriptPromise 一.数据结构1.JavaScript 有哪些数据类型共有八个数据类型,分别是undefined,Null,Boolean,String,Number,Object,Symbol,Bigint 这些数据类型可以分为原始数据类型与引用数据类型(复杂数据类型),他们在内存中的存储方式不同 其中 **Symbol** 和 **BigInt\*\* 是 ES6 中新增的数据类型: **Symbol**代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题。 **BigInt** 是一种数字类型的数据,它可以表示任意精度格式的整数,使用 BigInt 可以安全地存储和操作大整数,即使这个数已经超出了 Number 能够表示的安全整数范围。 堆: 存放引用数据类型,引用数据类型占据空间大、大小不固定。如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址,如Object、Array、Function。栈: 存放原始数据类型,栈中的简单数据段,占据空间小,属于被频繁使用的数据,如Str ...











