TOCTOU问题

TOCTOU问题

TOCTOU(Time-Of-Check to Time-Of-Use)是一类典型的竞态条件问题,指程序在“检查资源状态”和“实际使用该资源”之间存在时间窗口,状态可能被其他线程或进程悄悄改掉,从而引发逻辑错误或安全漏洞。本文通过 Redisson 分布式锁unlock的实际案例,说明 TOCTOU 在业务代码中的具体表现。

Explore categories

Explore the categories

System

5+ articles

System

思维

3+ articles

思维

Lang

18+ articles

Lang

Database

14+ articles

Database

Other

6+ articles

Other

Distributed

7+ articles

Distributed

Web

2+ articles

Web

DevPractice

1+ articles

DevPractice

生活

1+ articles

生活

Latest articles 🎈

Check out our latest articles

typedef详解

在 C 语言中,typedef 关键字用于为已有类型创建新的别名,从而提高代码的可读性和可维护性。本篇博客将深入解析 typedef 的用法,包括结构体重命名、指针类型定义、函数指针的应用,以及 typedef 和 struct 的区别,帮助你全面掌握 typedef 的使用技巧。

·#C
0
1 min read

socket的阻塞模式和非阻塞模式

本文深入对比了 socket 的阻塞模式与非阻塞模式的行为差异,涵盖 connect、accept、send、recv 等常用函数在两种模式下的表现,以及各自的优缺点、适用场景和错误处理方式,帮助你在开发高性能网络程序时做出正确选择。

·#Network/C/Linux
0
5 min read

struct声明中的__attribute__ ((packed))关键字

介绍了如何通过使用__attribute__ ((packed))关键字来取消默认的字节对齐,从而减少内存占用。通过一个简单的代码示例展示了在字节对齐和非字节对齐情况下结构体的内存占用对比。

·#C
0
1 min read

开发新功能和重构老代码如何选择

从第一原理出发,评估“开发新功能”和“重构旧代码”的取舍:先看商业目标与风险边界,再选最合适的手段(不一定是重构,也可能是提高测试覆盖或采用非技术手段如保险)。适用于创业与高风险金融场景的决策框架。

0
1 min read

基于快照的批量处理遗漏问题与CDC架构解法

你的数据真的同步完整了吗? 本文直击数据架构的隐形陷阱——基于快照和自增主键水位线的增量同步在 Read Committed 隔离级别下,如何导致延迟提交的事务(如“订单 1002”案例)被批处理任务永久遗漏。我们将深入分析这一问题的数据库根源,并对比两种根本性解决方案:一是基于业务/应用水位线的增量处理,它通过时间戳或版本号来弥补快照缺陷;二是变更数据捕获 (CDC),它通过读取事务日志,彻底实现零遗漏、近实时的数据同步。通过对比侵入性、数据完整性、成本与实时性,助你选择最可靠的流式数据架构策略。

0
3 min read

getaddrinfo函数详解及使用举例

本文系统介绍 POSIX 网络编程中的 getaddrinfo 函数,说明其参数、返回值、addrinfo 结构、hints 配置和 AI_PASSIVE 的作用,并结合 Redis 源码与 C 语言示例演示主机名解析和服务器地址绑定的典型用法。

·#C
0
6 min read