glibc

2024/4/12 12:42:26

glibc 知:手册82:附录C:安装 GNU C 库

文章目录1. 前言2. 附录 C 安装 GNU C 库2.1. 配置和编译 GNU C 库2.2. 安装 C 库2.3. 推荐的编译工具2.4. 针对 GNU/Linux 系统的具体建议2.5. 报告错误3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 附录 C 安装 GNU C 库 Appendix C Installin…

glibc 知:手册17:底层终端接口

文章目录1. 前言2. 底层终端接口2.1. 识别终端2.2. I/O 队列2.3. 两种输入方式:规范或非规范2.4. 终端模式2.4.1. 终端模式数据类型2.4.2. 终端模式功能2.4.3. 正确设置终端模式2.4.4. 输入模式2.4.5. 输出模式2.4.6. 控制模式2.4.7. 本地模式2.4.8. 行速度2.4.9. 特…

14 elf 文件执行的流程

前言 这里我们来探讨一下 elf 文件的执行流程 当然 这也是我很久以前 就想了解的东西了 不过 苦于 缺少各种调试环境, 呵呵 所以 一直搁置于此 调试环境 至关重要 这里主要是走一下 elf 的执行流程, fork, exec, libc_start_main, main 测试用例 rootubuntu:~/Clion…

glibc 知:手册29:系统数据库和名称服务开关

文章目录1. 前言2. 系统数据库和名称服务开关2.1. NSS 基础2.2. NSS 配置文件2.2.1. NSS 配置文件中的服务2.2.2. NSS 配置中的操作2.2.3. NSS 配置文件注意事项2.3. NSS 模块内部2.3.1. NSS 模块的命名方案2.3.2. NSS模块中的函数接口2.4. 扩展 NSS2.4.1. 向 NSS 添加另一个服…

glibc 知:手册37:内部探测器

文章目录1. 前言2. 内部探测2.1. 内存分配探测2.2. 非本地 Goto 探测3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 内部探测 Internal probes 为了帮助调试和监视内部行为,GNU C 库公开了使用 libc 提供程序标记的几乎零开销的 Syst…

glibc 知:手册31:系统管理

文章目录1. 前言2. 系统管理2.1. 主机识别2.2. 平台类型识别2.3. 控制和查询挂载2.3.1. 挂载信息2.3.1.1. fstab 文件2.3.1.2. mtab 文件2.3.1.3. 其他(非 libc)挂载信息来源2.3.2. 挂载、卸载、重新挂载3. 参考1. 前言 The GNU C Library Reference Ma…

glibc 知:构建2.34版本

文章目录获取版本构建安装测试testrun.shstrace获取版本 主页:https://www.gnu.org/software/libc 这里选择任意一个压缩包下载即可。 构建安装 tar -Jxf glibc-2.34.tar.xz mkdir build install cd build ../glibc-2.34/configure --prefix/usr make -j4 mak…

glibc 知:手册38:可调参数

文章目录1. 前言2. 可调参数2.1. 可调名称2.2. 内存分配可调参数2.3. 动态链接可调参数2.4. 省略可调参数2.5. POSIX 线程可调参数2.6. 硬件能力可调参数2.7. 内存相关的可调参数3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 可调参数 Tunables …

glibc 知:手册34:调试支持

文章目录1. 前言2. 调试支持2.1. 回溯3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 调试支持 Debugging support 应用程序通常使用专用调试器程序进行调试。但有时这是不可能的,无论如何,在遇到问题时向开发人员提供尽可…

运行库:程序进入main()之前发生了什么

1、linux下glibc运行库运行逻辑 正常可执行文件用glibc运行的函数调用顺序 _start -> __libc_start_main -> exit -> _exit; _start:xorl %ebp, %ebp //异或操作,将结果赋值到第一个参数上, ebp设置为0正好可以体现出_start作为最外围函数的地位popl …

glibc 知:手册18:系统日志

文章目录1. 前言2. 系统日志2.1. Syslog概述2.2. 提交系统日志消息2.2.1. 打开日志2.2.2. 系统日志2.2.3. 关闭日志2.2.4. 设置日志掩码2.2.5. 系统日志示例3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 系统日志 Syslog 本章描述了用于发布和记…

glibc 知:手册15:管道和FIFO

文章目录1. 前言2. 管道和 FIFO2.1. 创建管道2.2. 到子进程的管道2.3. FIFO 特殊文件2.4. 管道 I/O 的原子性3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 管道和 FIFO Pipes and FIFOs 管道是一种进程间通信机制;一个进程写入管道的…

glibc 知:手册16:套接字

文章目录1. 前言2. 套接字2.1. 套接字概念2.2. 通信方式2.3. 套接字地址2.3.1. 地址格式2.3.2. 设置套接字地址2.3.3. 读取套接字地址2.4. 接口命名2.5. 本地命名空间2.5.1. 本地命名空间概念2.5.2. 本地命名空间细节2.5.3. 本地命名空间套接字示例2.6. 互联网命名空间2.6.1. I…

glibc 知:手册10:模式匹配

文章目录1. 前言2. 模式匹配2.1. 通配符匹配2.2. 通配符2.2.1. 调用 glob2.2.2. 通配符2.2.3. 更多用于通配符的标志2.3. 正则表达式匹配2.3.1. POSIX正则表达式编译2.3.2. POSIX 正则表达式的标志2.3.3. 匹配编译后的 POSIX 正则表达式2.3.4. 匹配结果与子表达式2.3.5. 子表达…

glibc 知:ld.so

文章目录1. 名称2. 概要3. 描述3.1. 动态字符串标记4. 选项5. 环境5.1. 安全执行模式5.2. 环境变量5.2.1. LD_ASSUME_KERNEL(自 glibc 2.2.3 起)5.2.2. LD_BIND_NOW(自 glibc 2.1.1 起)5.2.3. LD_LIBRARY_PATH5.2.4. LD_PRELOAD5.…

glibc 知:系统调用

文章目录1. 简介2. 包装器2.1. 汇编系统调用2.2. 宏系统调用2.3. 定制系统调用3. 汇编系统调用详解3.1. syscalls.list3.2. assembly syscall wrappers3.3. syscall-template.S3.3.1. PSEUDO3.3.1.1. ENTRY3.3.1.2. DO_CALL3.3.1.3. SYSCALL_ERROR_LABEL3.3.2. PSEUDO_END3.3.2…

glibc 知:手册02:错误报告

文章目录1. 前言2. 错误报告2.1. 检查错误2.2. 错误代码2.3. 错误信息3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 错误报告 Error Reporting GNU C 库中的许多函数检测并报告错误情况,有时您的程序需要检查这些错误情况。例如&…

glibc 知:手册09:搜索和排序

文章目录1. 前言2. 搜索和排序2.1. 定义比较函数2.2. 数组搜索函数2.3. 数组排序函数2.4. 搜索和排序示例2.5. hsearch 函数2.6. tsearch 函数3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 搜索和排序 Searching and Sorting 本章介绍用于搜索和…

glibc 知:手册05:字符串和数组

文章目录1. 前言2. 字符串和数组实用程序2.1. 字符串的表示2.2. 字符串和数组约定2.3. 字符串长度2.4. 复制字符串和数组2.5. 连接字符串2.6. 复制时截断字符串2.7. 字符串/数组比较2.8. 整理函数2.9. 搜索函数2.9.1. 兼容性字符串搜索函数2.10. 在字符串中查找标记2.11. 擦除敏…

glibc 知:手册07:语言环境和国际化

文章目录1. 前言2. 语言环境和国际化2.1. 语言环境有什么影响2.2. 选择语言环境2.3. 语言环境类别2.4. 程序如何设置语言环境2.5. 标准语言环境2.6. 语言环境名称2.7. 访问区域信息2.7.1. localeconv:它是可移植的,但是……2.7.1.1. 通用数字格式参数2.7…

glibc 知:手册32:系统配置

文章目录1. 前言2. 系统配置参数2.1. 一般容量限制2.2. 整体系统选项2.3. 支持哪个版本的 POSIX2.4. 使用 sysconf2.4.1. sysconf 的定义2.4.2. sysconf 参数的常量2.4.3. sysconf 示例2.5. 一般容量限制的最小值2.6. 文件系统容量限制2.7. 文件支持中的可选功能2.8. 文件系统限…

glibc 知:手册13:底层输入/输出

文章目录1. 前言2. 底层输入/输出2.1. 打开和关闭文件2.2. 输入和输出原语2.3. 设置描述符的文件位置2.4. 描述符和流2.5. 混合流和描述符的危险2.5.1. 链接通道2.5.2. 独立通道2.5.3. 清洗流2.6. 快速分散-聚集 I/O2.7. 在两个文件之间复制数据2.8. 内存映射I/O2.9. 等待输入或…

glibc 知:手册33:加密函数

文章目录1. 前言2. 加密函数2.1. 密码存储2.2. 生成不可预测的字节3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 加密函数 Cryptographic Functions GNU C 库仅包含一些特殊用途的加密函数:用于密码存储的单向哈希函数,以…

glibc 知:手册35:线程

文章目录1. 前言2. 线程2.1. ISO C 线程2.1.1. 返回值2.1.2. 创建和控制2.1.3. 调用一次2.1.4. 互斥体2.1.5. 条件变量2.1.6. 线程本地存储2.2. POSIX 线程2.2.1. 线程特定数据2.2.2. 非 POSIX 扩展2.2.2.1. 为线程属性设置进程范围的默认值2.2.2.2. 控制新线程的初始信号掩码2…

glibc 知:手册36:动态链接器

文章目录1. 前言2. 动态链接器2.1. 动态链接器自省3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 动态链接器 Dynamic Linker 动态链接器负责加载动态链接的程序及其依赖项(以共享对象的形式)。 GNU C 库中的动态链接器还…

glibc 知:手册20:算术函数

文章目录1. 前言2. 算术函数2.1. 整数2.2. 整数除法2.3. 浮点数2.4. 浮点数分类函数2.5. 浮点计算中的错误2.5.1. FP 异常2.5.2. 无穷大和NaN2.5.3. 检查 FPU 状态字2.5.4. 数学函数的错误报告2.6. 舍入模式2.7. 浮点控制函数2.8. 算术函数2.8.1. 绝对值2.8.2. 归一化函数2.8.3…

libc 知:序

文章目录glibc手册muslglibc glibc 知:官方glibc 知:内容glibc 知:构建和测试glibc 知:构建2.34版本glibc 知:测试套件glibc 知:通用调试技术glibc 知:动态加载器操作glibc 知:ld.s…

glibc 知:手册30:用户和组

文章目录1. 前言2. 用户和组2.1. 用户和组 ID2.2. 进程的角色2.3. 为什么要改变进程的角色?2.4. 应用程序如何改变角色2.5. 阅读进程的角色2.6. 设置用户 ID2.7. 设置组 ID2.8. 启用和禁用 Setuid 访问2.9. Setuid 程序示例2.10. 编写 Setuid 程序的技巧2.11. 识别登…

glibc 知:手册80:附录A:库中的 C 语言设施

文章目录1. 前言2. 附录 A 库中的 C 语言设施2.1. 明确检查内部一致性2.2. 可变函数2.2.1. 为什么使用可变参数函数2.2.2. 如何定义和使用可变参数函数2.2.2.1. 变量参数的语法2.2.2.2. 接收参数值2.2.2.3. 提供了多少参数2.2.2.4. 调用可变参数函数2.2.2.5. 参数访问宏2.2.3. …

glibc 知:手册81:附录B:库设施概要

文章目录1. 前言2. 附录 B 库设施概要3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 附录 B 库设施概要 Appendix B Summary of Library Facilities 本附录是 GNU C 库提供的头文件中声明的工具的完整列表。每个条目还列出了衍生每个设施的标准或…

Android bionic和GNU glibc

Android bionic和GNU glibc 安卓运行的是bionic而非glibc。Bionic是标准C库的实现,由谷歌为其Android操作系统开发。它与GNU C库(glibc)(运行在标准linux发行版上)的不同之处在于,它是为内存和处理器能力低…

31 linux 中 用户栈帧 -> 内核栈帧

前言 比如 我们之前调试的 glibc 相关的库函数 glibc 相关是属于用户程序, 调用 操作系统的系统调用的时候, 会是 怎么样的一个情况呢? 系统调用 会有对应的系统栈帧来处理 系统调用的相关函数调用的堆栈支持 测试用例 我们这里主要是以 printf 中会分配缓冲区调用 ma…

使用patchelf解决vscode远程连接不支持低版本glibc的问题

使用patchelf解决vscode远程连接不支持低版本glibc的问题 目录 使用patchelf解决vscode远程连接不支持低版本glibc的问题1. 动态链接库下载2. 用 patchelf 修改 vscode-server 依赖的 glibc 版本 VScode 1.86 版本的 remote 要求 glibc 2.28 及以上,于是在各种旧版本…

DolphinDB 基于 Glibc 升级的性能优化实战案例

在高并发查询、查询需要涉及很多个分区的情况下,低版本的 glibc(低于2.23)会严重影响查询性能。需要升级 glibc 解决该问题优化性能。我们撰写了本文,通过 patchelf 工具修改可执行文件和动态库的 rpath,达到无需升级系…

27 getcwd 的调试

前言 同样是一个 很常用的 glibc 库函数 不管是 用户业务代码 还是 很多类库的代码, 基本上都会用到 获取当前路径 不过 我们这里是从 具体的实现 来看一下 测试用例 就是简单的使用了一下 getcwd rootubuntu:~/Desktop/linux/HelloWorld# cat Test04Getcwd.c #inc…

运行库:Linux下glibc和Windows下MSVC CRT对比

任何一个C程序要想要得到实现,都离不开背后的一套庞大的代码来进行支持(至少包括入口函数,以及其所依赖的函数所构成的函数集合等),这样一套背后代码被称为运行库,C语言的运行库叫做CRT(Runtime…

编译glibc源码

前言 有时候基于好奇或遇到了BUG,想看看glibc中某些功能怎么具体实现的。除了调试汇编,还可以编译glibc源码然后调试。在上节《Modern C std::mutex底层原理-CSDN博客》中,我们用汇编调试了glibc,本节我们编译其源码来直接调试。…

Linux: dev: glibc: GL 定义

今天找到了这个GL的定义,记录一下,费了一些劲才找到的。(没有想到的是#和define之间还有空格,导致一直搜不到想要的结果。)是在sysdeps/generic/ldsodefs.h文件中。依赖于SHARED和rtld的定义。 #ifndef SHARED # defi…

编译 glibc 2.28

sudo su git clone git://sourceware.org/git/glibc.git cd glibc git checkout glibc-2.28 mkdir build cd build …/configure --prefix “/home/build” make all make install plus: 失败1: 要安bison gawk 失败2: 放到了虚拟机与mac的共享盘里,结果硬连接失败…

虹软Linux x64开发环境部署(Centos6-GLIBC_2.18+GLIBCXX_3.4.20+GCC_4.8.2升级)

如果文章有错误部分,欢迎留言评论指出,谢谢!! 因公司最近需要在Linux系统中使用虹软的API,所以需要根据下方虹软所需配置进行系统升级 虹软所需的配置: 库依赖GLIBC 2.17及以上库依赖GLIBCXX 3.4.19及以上…

glibc 知:手册12:输入/输出流

文章目录1. 前言2. 输入/输出流2.1. 流2.2. 标准流2.3. 打开流2.4. 关闭流2.5. 流和线程2.6. 国际化应用程序中的流2.7. 按字符或行的简单输出2.8. 字符输入2.9. 面向行的输入2.10. 未读2.10.1. 未读意味着什么2.10.2. 使用ungetc做不读2.11. 块输入/输出2.12. 格式化输出2.12.…

glibc 知:手册83:附录D:库维护

文章目录1. 前言2. 附录 D 库维护2.1. 添加新功能2.1.1. 平台特定类型、宏和函数2.2. GNU C 库中的符号处理2.2.1. GNU C 库中的 64 位时间符号处理2.3. 移植 GNU C 库2.3.1. sysdeps 目录层次结构的布局2.3.2. 将 GNU C 库移植到 Unix 系统3. 参考1. 前言 The GNU C Library …

glibc 知:手册84:附录E:平台特定设施

文章目录1. 前言2. 附录 E 平台特定设施2.1. PowerPC 特定设施2.2. RISC-V 特定设施2.3. X86 特定设施3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 附录 E 平台特定设施 Appendix E Platform-specific facilities GNU C 库可以提供特定于机器的…

heap pwn 入门大全 - 2:glibc heap机制与源码阅读(下)

本文对glibc堆管理器的各项主要内存操作,以及glibc 2.26后引入的tcache机制进行源码级分析,可作为查找使用。 glibc memory operations 第一次malloc,会初始分配一个0x290的chunk,top chunk split返回给user后,剩余部…

openSource 知:社区贡献

文章目录glibcglibc 补丁发往 libc-alphasourceware.org 邮箱,贡献自检。 Linux: Fix 32-bit vDSO for clock_gettime on powerpc32 补丁:https://sourceware.org/git/?pglibc.git;acommit;he0fc721ce600038dd390e77cfe52440707ef574d 日期&#xff1…

glibc 知:构建机制

文章目录1. 前言1.1. 执行配置命令1.2. 生成构建日志2. 构建2.1. 总体机制2.1.1. 默认规则2.1.2. lib规则2.1.3. stamp规则2.1.4. subdir_lib规则2.1.4.1. subdirs列表2.1.5. libtypes规则2.1.5.1. o-iterator2.1.6. libc.so规则2.2. 系统调用的选择机制2.2.1. strcpy实现2.2.2…

TIP linux下hook memset函数

linux下hook memset函数 memset在libc.so中。hook可以帮助我们查找一些问题&#xff0c;比如hook memset可以根据某些memset参数特征记录一些信息&#xff0c;可以记录下调用栈信息。 hook的代码&#xff1a; #define _GNU_SOURCE #include <stdlib.h> #include <std…

glibc 知:手册26:进程

文章目录1. 前言2. 进程2.1. 运行命令2.2. 进程创建概念2.3. 进程识别2.4. 创建进程2.5. 执行文件2.6. 进程完成2.7. 进程完成状态2.8. BSD 进程等待函数2.9. 进程创建示例3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 进程 Processes 进程是分…

glibc 知:手册21:日期和时间

文章目录1. 前言2. 日期和时间2.1. 时间基础2.2. 时间类型2.3. 计算经过时间2.4. 处理器和 CPU 时间2.4.1. CPU时间查询2.4.2. 处理器时间查询2.5. 日历时间2.5.1. 获得时间2.5.2. 设置和调整时间2.5.3. 故障时间2.5.4. 格式化日历时间2.5.5. 将文本时间和日期信息转换回来2.5.…

glibc 知:手册19:数学库

文章目录1. 前言2. 数学2.1. 预定义的数学常数2.2. 三角函数2.3. 反三角函数2.4. 取幂和对数2.5. 双曲函数2.6. 特殊功能2.7. 数学函数中已知的最大误差2.8. 伪随机数2.8.1. ISO C 随机数函数2.8.2. BSD 随机数函数2.8.3. SVID 随机数函数2.9. 首选快码还是小码&#xff1f;3. …

glibc 知:手册14:文件系统接口

文章目录1. 前言2. 文件系统接口2.1. 工作目录2.2. 访问目录2.2.1. 目录条目的格式2.2.2. 打开目录流2.2.3. 读取和关闭目录流2.2.4. 列出目录的简单程序2.2.5. 目录流中的随机访问2.2.6. 扫描目录的内容2.2.7. 列出目录的简单程序&#xff0c;Mark II2.2.8. 底层目录访问2.3. …

glibc 知:手册27:进程间通信

文章目录1. 前言2. 进程间通信2.1. 信号量2.1.1. System V 信号量2.1.2. POSIX 信号量3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 进程间通信 Inter-Process Communication 本章描述了 GNU C 库进程间通信原语。 2.1. 信号量 Semaphores G…

glibc 知:手册28:任务控制

文章目录1. 前言2. 任务控制2.1. 任务控制的概念2.2. 控制进程的终端2.3. 访问控制终端2.4. 孤立的进程组2.5. 实现任务控制 shell2.5.1. Shell 的数据结构2.5.2. 初始化 shell2.5.3. 启动任务2.5.4. 前台和后台2.5.5. 停止和终止的任务2.5.6. 继续停止的任务2.5.7. 丢失的部分…

glibc 知:手册24:信号处理

文章目录1. 前言2. 信号处理2.1. 信号的基本概念2.1.1. 几种信号2.1.2. 信号生成的概念2.1.3. 信号如何传递2.2. 标准信号2.2.1. 程序错误信号2.2.2. 终止信号2.2.3. 报警信号2.2.4. 异步 I/O 信号2.2.5. 作业控制信号2.2.6. 操作错误信号2.2.7. 杂项信号2.2.8. 信号消息2.3. 指…

理解 glibc malloc

0x01 前言 glibc malloc学习记录 参考文章&#xff1a;https://sploitfun.wordpress.com/2015/02/10/understanding-glibc-malloc/ 教程是15年的文章&#xff0c;以下内容仅为学习该文章所得&#xff0c;不保证全部内容依然有效 0x02 memory allocator 简介 每一种memory a…

glibc 知:手册22:资源使用和限制

文章目录1. 前言2. 资源使用和限制2.1. 资源使用2.2. 限制资源使用2.3. 进程CPU优先级和调度2.3.1. 绝对优先2.3.1.1. 使用绝对优先级2.3.2. 实时调度2.3.3. 基本调度函数2.3.4. 传统调度2.3.4.1. 传统调度简介2.3.4.2. 传统调度的函数2.3.5. 限制对某些 CPU 的执行2.4. 查询内…

glibc 知:测试套件

文章目录前言测试套件目标只测试一项测试ABI检查有关 make xcheck 特定测试的详细信息编写测试用例使用交叉编译器进行测试已知的测试套件失败abi-checkbug-atexit3 和 nptl 测试tst-eintr1后语前言 glibc的测试套件的wiki主页为&#xff1a;https://sourceware.org/glibc/wik…

glibc 知:源码

文章目录前言目录结构后语前言 代码仓&#xff1a;https://sourceware.org/git/glibc.git gitweb&#xff1a;https://sourceware.org/git/?pglibc.git tar包&#xff1a;http://ftp.gnu.org/gnu/glibc/ 目录结构 类型名称说明dargp分层参数解析&#xff0c;在 getopt 上分…

glibc 知:构建和测试

文章目录1. 前言2. 构建2.1. 只构建不安装2.2. 构建并安装3. 测试3.1. 正常编译应用&#xff0c;在新glibc下运行3.2. 基于glibc构建树进行编译应用3.3. 基于glibc安装位置进行编译应用3.4. 所需的gdb设置3.4.1. 线程设置3.4.2. 环境设置3.4.3. 调试测试用例4. 后语1. 前言 构…

glibc 知:手册04:字符处理

文章目录1. 前言2. 字符处理2.1. 字符分类2.2. 大小写转换2.3. 宽字符的字符类别确定2.4. 使用宽字符类的注意事项2.5. 宽字符的映射3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 字符处理 Character Handling 处理字符和字符串的程序通常需要对…

glibc 知:手册03:虚拟地址分配和分页

文章目录1. 前言2. 虚拟地址分配和分页2.1. 进程内存概念2.2. 为程序数据分配存储空间2.2.1. C 程序中的内存分配2.2.1.1. 动态内存分配2.2.2. GNU 分配器2.2.3. 无约束分配2.2.3.1. 基本内存分配&#xff08;malloc&#xff09;2.2.3.2. malloc的例子2.2.3.3. 释放malloc分配的…

glibc 知:手册06:字符集处理

文章目录1. 前言2. 字符集处理2.1. 扩展字符简介2.2. 字符处理函数概述2.3. 可重启的多字节转换函数2.3.1. 选择转换及其属性2.3.2. 表示转换的状态2.3.3. 转换单个字符2.3.4. 转换多字节和宽字符串2.3.5. 一个完整的多字节转换示例2.4. 不可重入转换函数2.4.1. 单个字符的不可…

glibc 知:手册08:消息翻译

文章目录1. 前言2. 消息翻译2.1. X/Open 消息目录处理2.1.1. catgets 函数族2.1.2. 消息目录文件的格式2.1.3. 生成消息目录文件2.1.4. 如何使用catgets接口2.1.4.1. 不使用符号名2.1.4.2. 使用符号名2.1.4.3. 如何允许开发2.2. Uniforum 消息翻译方法2.2.1. gettext 系列函数2…

glibc 知:手册01:介绍

文章目录1. 前言2. 介绍2.1. 入门2.2. 标准和可移植性2.2.1. ISO C2.2.2. POSIX&#xff08;可移植操作系统接口&#xff09;2.2.2.1. POSIX 安全概念2.2.2.2. 不安全特性2.2.2.3. 条件安全特征2.2.2.4. 其它安全备注2.2.3. 伯克利 Unix2.2.4. SVID&#xff08;System V接口描述…

glibc 知:手册11:输入/输出概述

文章目录1. 前言2. 输入/输出概述2.1. 输入/输出概念2.1.1. 流和文件描述符2.1.2. 文件位置2.2. 文件名2.2.1. 目录2.2.2. 文件名解析2.2.3. 文件名错误2.2.4. 文件名的可移植性3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 输入/输出概述 Input…

glibc 知:手册23:非本地退出

文章目录1. 前言2. 非本地退出2.1. 非本地退出简介2.2. 非本地退出明细2.3. 非本地退出和信号2.4. 完整的上下文控制3. 参考1. 前言 The GNU C Library Reference Manual for version 2.35 2. 非本地退出 有时&#xff0c;当您的程序在一组深度嵌套的函数调用中检测到异常情…

glibc 知:手册25:程序基础/系统接口

文章目录1. 前言2. 基本程序/系统接口2.1. 程序参数2.1.1. 程序参数语法约定2.1.2. 解析程序参数2.2. 使用 getopt 解析程序选项2.2.1. 使用 getopt 函数2.2.2. 使用 getopt 解析参数的示例2.2.3. 使用 getopt_long 解析长选项2.2.4. 使用 getopt_long 解析长选项的示例2.3. 使…

version `GLIBCXX_3.4.21‘ not found

现象 今天在运行pytorch时报错了 version GLIBCXX_3.4.21‘ not found原因 centos7当前的gcc版本太老 ,里面的动态链接库没有GLIBCXX_3.4.21 排查 执行命令 检查动态库 strings /usr/lib64/libstdc.so.6 | grep GLIBCGLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.…

glibc: strlcpy

https://zine.dev/2023/07/strlcpy-and-strlcat-added-to-glibc/ https://sourceware.org/git/?pglibc.git;acommit;h454a20c8756c9c1d55419153255fc7692b3d2199 https://linux.die.net/man/3/strlcpy https://lwn.net/Articles/612244/ 从这里看&#xff0c;这个strlcpy、st…

VSCode调试出现无法打开glibc库的“raise.c“或“abort.c“等文件的错误

终端则会显示 terminate called after throwing an instance of std::logic_errorwhat(): basic_string::_M_construct null not valid 参考Github库vscode-cpptools的issue #1738: Error on WSL: unable to open raise.c和#4686: Debugging Error:Unable to open raise.c&a…

glibc: dup/dup2/dup3/F_DUPFD

文章目录 为什么存在这种函数第一个答案第二个兼容老系统另外一个原因 为什么有的软件使用这么频繁 为什么存在这种函数 因为这个dup的行为&#xff0c;就是为文件的操作&#xff0c;多设置几个文件描述符&#xff0c;看似没有什么太大的用途。 第一个答案 正规的解答&#…

heap pwn 入门大全 - 1:glibc heap机制与源码阅读(上)

本文为笔者学习heap pwn时&#xff0c;学习阅读glibc ptmalloc2源码时的笔记&#xff0c;与各位分享。可能存在思维跳跃或错误之处&#xff0c;敬请见谅&#xff0c;欢迎在评论中指出。本文也借用了部分外网和其他前辈的素材图片&#xff0c;向各位表示诚挚的感谢&#xff01;如…

JVM第十五讲:调试排错 - Java 内存分析之堆外内存

调试排错 - Java 内存分析之堆外内存 本文是JVM第十五讲&#xff0c;Java 内存分析之堆外内存调试排错。Java 堆外内存分析相对来说是复杂的&#xff0c;美团技术团队的Spring Boot引起的“堆外内存泄漏”排查及经验总结可以为很多Native Code内存泄漏/占用提供方向性指引。 文…

基于 Glibc 版本升级的 DolphinDB 数据查询性能优化实践

在高并发查询、查询需要涉及很多个分区的情况下&#xff0c;低版本的 glibc&#xff08;低于2.23&#xff09;会严重影响查询性能。需要升级 glibc 解决该问题优化性能。我们撰写了本文&#xff0c;通过 patchelf 工具修改可执行文件和动态库的 rpath&#xff0c;达到无需升级系…

22 memcpy 的调试

前言 同样是一个 很常用的 glibc 库函数 不管是 用户业务代码 还是 很多类库的代码, 基本上都会用到 内存数据的拷贝 不过 我们这里是从 具体的实现 来看一下 它的实现 主要是使用 汇编 来进行实现的, 因此 理解需要一定的基础 测试用例 就是简单的使用了一下 memcpy,…

malloc没那么简单

malloc的用法 在函数的实现中&#xff0c;经常需要动态的申请内存&#xff0c;就需要调用malloc函数来申请。malloc函数的使用范围很广&#xff0c;在使用时一般只需要包含stdlib.h就可以直接使用&#xff0c;下面展示一个malloc的简单实例。 mem.c #include <stdio.h>…

24 memcmp 的调试

前言 同样是一个 很常用的 glibc 库函数 不管是 用户业务代码 还是 很多类库的代码, 基本上都会用到 内存数据的比较 不过 我们这里是从 具体的实现 来看一下 它的实现 主要是使用 汇编 来进行实现的, 因此 理解需要一定的基础 测试用例 就是简单的使用了一下 memcpy,…

Linux查看glibc安装版本

Linux查看glibc安装版本64bit&#xff1a;strings /lib64/libc.so.6 |grep GLIBC32bit&#xff1a;strings /lib/libc.so.6 |grep GLIBC

GLIBC中NPTL线程实现代码阅读

项目的性能测试告一段落&#xff0c;暂时松了一口气。但是也发现很多知识的盲点&#xff0c;也许这就是所谓的知道的越多&#xff0c;不知道的也越多。 现在所有的程序基本上都是用多线程来实现的&#xff0c;尤其是Unix/Linux server程序。我原本以为线程是直接在内核实现的&…

Linux: glibc: net/if.h vs linux/if.h

最近看到一段代码改动,用net/if.h替换了linux/if.h。仔细看了看这两个的区别: https://stackoverflow.com/questions/20082433/what-is-the-difference-between-linux-if-h-and-net-if-h 从网上搜了一下看到如下的一个编译错误,如果同时使用这两个if.h文件,需要将net/if.h…

mysql5.6.35-glibc安装

mysql5.6.35-glibc安装 官网下载&#xff1a;mysql官网 创建用户mysql useradd mysql -r -s /bin/false 解压安装包 tar -zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 修改mysql文件名 mv mysql-5.6.35-linux-glibc2.5-x86_64 mysql更改mysql文件权限 chown -R m…

【ARM 嵌入式 编译系列 3.3 -- libgcc.a 详细介绍】

文章目录 LIBGCC背景libgcc.a 详细介绍1. 处理复杂运算2. 提供弱符号和陷阱处理3. 实现支持语言特性的函数4. 支持跨平台编译LIBGCC背景 libgcc 是GCC的一部分。C语言不仅仅是由编译器构成,还包括了一个标准库。编译器在GCC包里,标准库则位于GNU C库里,即glibc包里。C编译器…

Centos7更新glibc2.18

Centos7更新glibc2.18 查看glibc版本下载解压glibc2.18编译安装结果验证 查看glibc版本 # 查看glibc版本 ldd --version下载解压glibc2.18 参考: https://blog.csdn.net/qq_39295044/article/details/86685789 https://blog.csdn.net/myhes/article/details/106923039 # 下载…

如何查看Linux中glibc的Version

用ldd --version ldd --version 运行libc.so 你没有看错&#xff0c;libc.so是一个可执行程序。 但前提是你要找到它。因为它并不在PATH所包含的目录下。 ppdell:~$ ldd which cat | grep libclibc.so.6 > /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0e6fb34000)ppdell:~…