pause系统调用及示例

我们继续学习 Linux 系统编程中的重要函数。这次我们介绍 pause 函数,它是一个非常简单的系统调用,功能是使调用它的进程(或线程)进入睡眠(阻塞)状态,直到该进程接收到一个信号(signal)为止。 1. 函数介绍 pause 是一个 Linux 系统调用,它的作用非常直接:挂起调用它的进程,使其进入可中断的睡眠状态(interruptible sleep state)。进程会一直保持睡眠,不消耗 CPU 时间,直到发生以下两种情况之一: 1. 接收到信号: 进程被一个信号中断。这可以是任何信号,例如 SIGINT (Ctrl+C), SIGTERM (终止), SIGUSR1

Read More

preadv1系统调用及示例

preadv 函数 preadv 是 pread 的分散读取版本,它允许一次性从文件的指定位置读取数据到多个不连续的缓冲区中。这是分散/聚集I/O操作的一部分。(https://www.calcguide.tech/2025/08/16/preadv1系统调用及示例/) 1. 函数介绍 preadv 是 pread 的分散读取版本,它允许一次性从文件的指定位置读取数据到多个不连续的缓冲区中。这是分散/聚集I/O操作的一部分。 2. 函数原型 1 2 3 4 #define _GNU_SOURCE #include ssize_t preadv(int fd,

Read More

preadv2系统调用及示例

好的,我们继续按照您的要求学习 Linux 系统编程中的重要函数。这次我们介绍 preadv2、pwritev2 和 pkey_mprotect。 函数 1: preadv2 1. 函数介绍 preadv2 (pread vector 2) 是 preadv 系统调用的扩展版本。它结合了 pread(带偏移量读取)和 readv(分散读取)的优点,并引入了一个新的 flags 参数,提供了更灵活的 I/O 控制选项。 简单来说,preadv2 允许你从文件的指定偏移量开始,将数据分散读入到多个不连续的缓冲区中,同时还能指定一些高级 I/O 行为(通过 flags)。 2. 函数原型 1

Read More

pread系统调用及示例

我们继续学习 Linux 系统编程中的重要函数。这次我们介绍 pread 和 pwrite 函数,它们是 read 和 write 系统调用的增强版本,允许在单次调用中指定文件偏移量,而不会改变文件的当前读写位置指针。 1. 函数介绍 pread (Positioned Read) 和 pwrite (Positioned Write) 是 Linux 系统调用,它们结合了 read/write 的数据传输功能和 lseek 的定位功能。 * pread: 从文件描述符 fd 关联的文件中,从指定的偏移量 offset 处开始读取 count 个字节的数据,并将其存储到缓冲区 buf 中

Read More

prlimit64系统调用及示例

prlimit64 函数 1. 函数介绍 prlimit64 用于获取和设置进程的资源限制。它是 getrlimit 和 setrlimit 的增强版本,支持64位资源限制值。 2. 函数原型 1 2 3 4 #define _GNU_SOURCE #include int prlimit64(pid_t pid, int resource, const struct rlimit64 *new_limit, struct rlimit64 *old_limit); 3. 功能 获取和/或设置指定进程的资源限制。可以用于控制进程使用的各种系统资源

Read More

process_vm_writev系统调用及示例

process_vm_readv/process_vm_writev 函数详解 1. 函数介绍 process_vm_readv 和 process_vm_writev 是Linux系统提供的两个系统调用,用于在不同进程之间直接传输数据。它们允许一个进程直接读取或写入另一个进程的内存空间,而无需通过传统的管道、套接字等IPC机制。这种直接内存访问方式提供了更高的性能,特别适用于调试工具、进程监控、内存分析等场景。 2. 函数原型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #define _GNU_SOURCE #include Read More

process_vm_readv系统调用及示例

process_vm_readv/process_vm_writev 函数详解 1. 函数介绍 process_vm_readv 和 process_vm_writev 是Linux系统提供的两个系统调用,用于在不同进程之间直接传输数据。它们允许一个进程直接读取或写入另一个进程的内存空间,而无需通过传统的管道、套接字等IPC机制。这种直接内存访问方式提供了更高的性能,特别适用于调试工具、进程监控、内存分析等场景。 2. 函数原型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #define _GNU_SOURCE #include Read More

setrlimit系统调用及示例

我们来深入学习 setrlimit 系统调用 1. 函数介绍 在 Linux 系统中,为了保证系统的稳定性和公平性,防止某个程序因为 bug 或恶意行为而耗尽系统资源(如内存、CPU 时间、打开的文件数量等),内核提供了一种资源限制 (Resource Limits) 机制。 setrlimit (Set Resource Limit) 系统调用的作用就是设置调用进程(及其未来创建的子进程)对某一类系统资源的使用上限。 你可以把它想象成你给一个程序分配一个“资源使用预算”或“配额”。比如,你可以告诉内核:“这个程序最多只能使用 100MB 的内存”、“最多只能打开 10 个文件”、“最多

Read More

Linux 系统中安装中文man手册

Linux 系统中安装中文man手册 轻松掌握Linux系统中中文man手册的安装方法,快速获取帮助文档。适合所有Linux用户学习参考,立即访问了解更多! 在 Linux 系统中获取中文man手册的最合适方法如下: 一、主流发行版安装方法 1. Debian/Ubuntu 及衍生系统 1 2 3 4 5 # 更新软件源 sudo apt update # 安装中文 man 手册包 sudo apt install manpages-zh 安装后,中文手册默认位于 /usr/share/man/zh_CN/。 2. RHEL/CentOS 及衍生系统 1 2 3 4 5

Read More

set内置命令的 -e选项详解

set内置命令的 -e选项详解 探索Shell脚本中set内置命令的-e选项如何提升代码质量与安全性,掌握其工作原理及实用示例,成为脚本高手。 在 Shell 脚本中,set -e 是一个非常重要的命令选项,用于让脚本在遇到错误时立即终止执行(即“出错即停止”)。它通过监控每个命令的退出状态码(Exit Status)来实现这一功能,是编写健壮脚本的关键工具之一。 核心作用:出错即终止 当 set -e 生效时,Shell 脚本中任何返回非零退出状态码(表示执行失败)的命令都会触发脚本立即终止,避免后续命令继续执行可能导致的连锁错误(例如删除错误文件、覆盖重要数据等)。 工作机制:退

Read More