- 博客(113)
- 收藏
- 关注
原创 Linux 递归查找并删除目录下的文件
在 Linux 中,可以使用 find 命令递归查找并删除目录下的文件。如果需要删除目录本身,可以使用 -type d 或结合 rm -r。
2025-04-07 23:35:22
149
原创 关于计算机网络的一些疑问
队头阻塞(Head-of-Line Blocking, HOL Blocking)是指一个连接中的请求因为前面的请求没有完成而被阻塞的情况。HTTP/1.x 中,主要有两种形式的队头阻塞:HTTP 层的队头阻塞:在 HTTP/1.1 中,虽然引入了“持久连接”(Persistent Connection)和“管道化”(Pipelining),但同一条 TCP 连接只能按顺序处理请求。如果一个请求因为某些原因(如服务器响应延迟)没有完成,后续请求就必须等待,无法越过前面的请求。这就导致了“队头阻塞”。
2025-04-06 09:37:19
1042
原创 USB传输结构结构与类型简介
Transfer(传输)├─ Transaction(事务)│ ├─ Packet(数据包)│ └─ Packet(数据包)└─ Transaction(事务)从大到小:传输 → 事务 → 数据包,层层细化。
2025-04-06 09:30:44
823
原创 USB传输(Transaction)过程简介
快递单(Token):说明要寄什么、给谁。包裹(Data Packet):实际物品。签收单(Handshake):确认是否收到。
2025-04-04 14:55:30
898
原创 深度探索C++对象模型 - 位逐次拷贝语义
位逐次拷贝语义”(bitwise copy semantics)指的是,对象的复制可以通过直接复制其在内存中的原始字节来实现。这种复制方式简单且高效,适用于结构简单的类,例如那些不包含指针、需要特殊拷贝处理的资源或复杂继承结构的类。对于这类简单的类,复制其内存布局就相当于创建了一个完全相同的副本。当一个类包含一个成员对象,而该成员对象所属的类定义了拷贝构造函数时(无论是显式声明还是由编译器合成),该类就不能简单地依赖位逐次拷贝。
2025-04-04 14:54:32
455
原创 C 预处理器、编译器和链接器的理解与说明
阶段选项作用示例预处理器-E仅预处理,输出结果-I指定头文件路径-D定义宏编译器-c生成目标文件(.o-S生成汇编代码(.s-O2优化级别 2-g生成调试符号链接器-o指定可执行文件名-L指定库搜索路径-l指定链接的库。
2025-04-03 11:58:15
1143
原创 解决双系统(ubuntu与windows)中的时间同步问题
我在同一台机器上同时运行Ubuntu和其他操作系统(如Windows),遇到由于不同的RTC处理方式导致的时间不同步问题使用下面的指令查看系统时间状态,Local time实际上是RTC timeWindows默认假设RTC是以本地时间为基准设置的,而大多数Linux发行版(包括Ubuntu)则通常配置成认为RTC保存的是UTC协调世界时15。这种差异会导致每次切换操作系统后看到的时间不一致。
2025-03-30 13:47:29
398
原创 开源项目里的 autogen.sh 是做什么?
脚本用于在特定系统上配置软件的构建过程。它会检查系统特性、已安装的库和头文件,并根据这些信息生成适合的。是一个在基于 Autotools 构建系统的开源项目中常见的脚本。是 Autotools 的一个组件,它会根据项目根目录下的。脚本中添加额外的自定义步骤,以完成特定的初始化或准备工作。是 Autotools 的另一个组件,它会根据项目中的。它会检查系统中是否安装了构建项目所需的工具,例如。如果缺少必要的工具,脚本可能会报错并提示安装。,或者在项目的构建相关文件(例如。因此,通常会在克隆源代码后。
2025-03-29 18:19:59
504
原创 libimobiledevice项目中各个库的作用
这是一个基于 FUSE (Filesystem in Userspace) 的工具,允许您像挂载普通文件系统一样挂载 iOS 设备的文件系统。这是一个后台守护进程(daemon),负责管理通过 USB 连接的 iOS 设备的 socket 连接。这是一个用于与处于恢复模式(Recovery Mode)或设备固件升级模式(DFU Mode)的 iOS 设备进行通信的库。这是一个命令行工具,也是一个库,用于在已越狱和未越狱的 iOS 设备上安装、卸载和管理应用程序(.ipa 文件)。守护进程的客户端库。
2025-03-29 17:14:28
430
原创 Boost无锁队列简介
无锁队列(Lock-Free Queue)是一种在多线程环境中非常高效的队列实现,其最大优势在于避免了传统的锁机制(如互斥锁mutex)带来的性能开销。它们通过特定的算法和原子操作保证多线程访问时,不需要锁定资源,因此提高了并发执行效率。以Boost库中的无锁队列和分析其中的一些关键点,理解无锁队列的实现原理。
2025-03-25 11:12:37
342
原创 SQLite优化实践
通过将多个插入操作包装在一个事务中,可以显著减少每次写入数据库时的磁盘I/O操作。减少磁盘I/O、提高插入速度,并在牺牲一些内存和CPU使用的情况下优化数据库性能。
2025-03-25 11:08:57
786
原创 C++中的SSO(小字符串优化)是什么
SSO(Small String Optimization)是一种优化技术,旨在提高小字符串的性能。在传统的实现中,字符串通常会在堆上分配内存,这意味着每次创建或操作字符串时,都会涉及到动态内存分配,这对小字符串来说是低效的。为了解决这个问题,SSO 将短字符串直接存储在对象本身的内存中,而不需要额外的堆内存分配。这样可以大幅降低小字符串操作的开销,避免频繁的内存分配和指针访问。
2025-03-24 22:23:38
404
原创 notify_one() 会阻塞吗?
时,如果有线程在等待条件变量,它会被唤醒并开始检查条件。如果没有线程在等待,调用。唤醒线程后,这个线程并不会立刻继续执行,它必须先重新获取锁并检查条件是否满足。会使一个处于等待状态的线程被唤醒并继续执行,但它本身并不会阻塞。它是用于唤醒一个等待中的线程,通常是通过条件变量(
2025-03-24 22:19:18
223
原创 SQLite 查询数据库属性
在 SQLite 命令行工具中,没有直接查看数据库文件大小的指令,但你可以通过操作系统的命令来查看。例如,在 Linux 或者 macOS 系统中,你可以使用。表存储着数据库的元数据,其中包含了所有表、视图、索引等的定义信息。若要查看某个表的结构,也就是表的列名、数据类型等信息,可以使用。在 Windows 系统中,你可以使用。若要查看数据库里的所有表名,可以借助。替换成你实际要查看的表名。
2025-03-21 09:59:27
471
原创 Windows 格式化磁盘
7、输入 “format fs=ntfs quick” 命令,将指定分区格式化为 NTFS 文件系统。6、输入 “select partition #” 命令(# 为要格式化的分区号),精准选定要进行格式化操作的分区。点击 “开始” 菜单,输入 “cmd”,右键单击并选择 “以管理员身份运行”。3、输入 “list disk” 命令,查看当前计算机中所有的磁盘,找到装有 Ubuntu 系统的磁盘编号。4、输入 “select disk #” 命令(# 为要格式化的分区所在的硬盘号),选中目标磁盘。
2025-03-21 09:39:41
207
原创 Android Shell上执行可执行文件报错:Permission denied
文件系统挂载为SELinux安全策略限制Android中以下目录通常允许执行文件:
2025-03-19 21:54:18
398
原创 Mac下查看dylib库的版本信息
在macOS系统里,otool是一个实用的命令行工具,可用于查看 Mach-O 文件(如可执行文件、动态链接库等)的相关信息。若要查看动态链接库(.dylib)的版本,可借助otool -L命令。
2025-03-18 14:57:12
507
原创 Win10 访问 Ubuntu 18 硬盘
Samba 是在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的一个免费软件,可让 Windows 系统方便地访问 Linux 共享资源。在 Ubuntu 上搭建 FTP 服务器,让 Windows 10 通过 FTP 客户端访问。SSHFS 允许你通过 SSH 协议挂载远程文件系统。请替换为你实际的用户主目录。
2025-03-08 22:14:30
1176
原创 Ubuntu18使用Samba共享服务
Samba 是在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的一个免费软件,可让 Windows 系统方便地访问 Linux 共享资源。
2025-02-22 23:29:17
497
原创 Linux 多进程生产者消费者模型实现
生产者消费者模型是并发编程中的经典案例,本文通过一个具体的C++示例,演示如何在Linux环境下使用System V IPC机制实现跨进程的生产者消费者模型。(此处插入用户提供的完整生产者/消费者代码)
2025-02-18 23:24:38
986
原创 Linux 信号量
信号量作为经典的进程同步工具,在系统级编程中仍具有重要地位。理解其底层机制并结合现代编程范式,能够帮助开发者构建更健壮的并发系统。在实际应用中,需要根据具体场景选择最合适的同步策略,平衡性能与安全性。在多进程/多线程编程中,当多个执行单元需要访问共享资源时,必须引入同步机制来保证数据一致性。信号量(Semaphore)正是解决这一问题的经典方案。
2025-02-17 23:58:44
899
原创 Git 修改或删除某次提交信息
如果要修改或删除的提交已经推送到远程仓库,在修改本地提交信息后,还需要强制推送到远程仓库。强制推送可能会影响其他团队成员的工作,因此在多人协作的项目中,建议先与团队成员沟通协调。步骤与修改历史提交信息类似,只是在输入新的提交信息时将内容清空,然后保存并关闭编辑器。如果你要修改或删除的提交是最新的一次提交(即 HEAD 指向的提交),可以使用。的缩写,表示强制推送,会覆盖远程仓库上的提交历史,请谨慎使用。如果你想要修改或删除的不是最新的提交,而是历史提交,可以使用。执行该命令后,提交信息会被替换为空字符串。
2025-02-15 17:09:18
627
原创 C# 调用 C++ 动态库接口
在 C# 中调用 C++ 动态库接口,通常需要通过 P/Invoke (Platform Invocation Services) 来与 C++ 代码交互。
2025-02-15 15:33:14
313
原创 CMake 判断 Mac编译环境是Intel的还是Arm的?
在 CMake 中判断 Mac 是 Intel 架构还是 ARM 架构,可以通过检测变量。这个变量返回的是系统的处理器架构信息,可以根据它的值来区分 Intel 和 ARM。"x86_64""arm64"可以在文件中使用这个信息来执行不同的逻辑。
2025-02-15 15:29:03
364
原创 解析vCard 3.0:提取电子名片中的姓名
N:LastName;FirstName;;;END:VCARD和END:VCARD标记数据块的开始和结束。N字段存储结构化姓名(分号分隔)。FN字段为直接可读的显示名称。其他字段如TELEMAIL等保存联系信息。
2025-02-13 14:49:41
419
原创 SQL CASE表达式的用法
当遇到更为复杂的条件判断时,可以使用嵌套CASE表达式。比如,在统计员工绩效时,先判断是否完成基本任务量,再根据完成的超额比例进行细分。今天在也无力用到了CASE表达式,于是有了这篇博客,CASE表达式是一个极为实用的工具,能帮助开发者实现复杂的条件逻辑判。利用搜索CASE表达式,依据不同的薪资条件判断出薪资等级。中结合CASE表达式,实现了对不同薪资等级员工人数的统计。表为例,这次我们想根据员工的薪资范围来划分薪资等级。同样可选,当所有条件都为假时返回,省略时默认返回。等是当对应条件为真时返回的结果。
2025-02-12 23:04:47
531
原创 iTunes 不能读取iPhone的内容
iPhone 连接Windows电脑,打开iTunes后弹窗:iTunes不能读取iPhone的内容,请前往iPhone“偏好设置”的“摘要”选项卡,然后单击“恢复”以将此iPhone恢复为出厂设置。打开手机数据管理助手(Dr.Fone、爱思都可以),在文件管理中找到iTunes_Control文件夹。手机与电脑连接后打开iTunes后,直接关闭弹窗与iTunes软件,不要点恢复出厂设置。之后便可以正常使用iTunes管理iPhone啦!此时其实可以不必重置iPhone。全选,删除,即可解决问题。
2025-02-12 14:37:40
886
原创 Linux 共享内存
而共享内存要求数据存储在连续的物理内存中,因此在定义共享内存中的结构体时,需要使用固定大小的字符数组(如 char[])来存储字符串。Redis 的持久化模块使用共享内存来映射内存数据到磁盘文件,这大大提升了 RDB 快照生成的效率,减少了数据持久化过程中的 I/O 操作时间。传统的 IPC 方式如管道、消息队列等,在数据传输时都需要内核参与复制操作,而共享内存通过直接内存访问的方式,将通信性能提升了数量级。将共享内存映射到自己的虚拟地址空间,这样进程就可以直接读写共享内存中的数据。
2025-02-12 00:19:31
1251
原创 SwiftUI 中 .overlay 两种写法的区别及拓展
overlay是 SwiftUI 中的一个视图修饰符,它允许你在另一个视图之上添加额外的视图。这个额外的视图可以是任何 SwiftUI 视图,包括形状、文本、图像、按钮或它们的组合,并且可以根据需要进行布局、样式和动画的设置。当你使用.overlay时,添加的元素会显示在原始视图的上方,就像是覆盖在上面一样。这种叠加的效果可以用于添加装饰元素、强调信息、显示状态指示或创建复杂的组合视图。
2025-02-11 23:59:40
925
iOS逆向-基础内容-iOS体系结构-iOS安全体系-iOS Media Layer-iOS Core OS Layer-iOS 应用程序结构-iOS 进程间通信
2025-01-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人