news 2026/7/6 20:38:49

35、Linux 系统中的 I/O、进程控制与进程间通信

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
35、Linux 系统中的 I/O、进程控制与进程间通信

Linux 系统中的 I/O、进程控制与进程间通信

1. 信号处理与系统调用信息

在 Linux 系统中,进程处理信号时需谨慎。若进程忽略从键盘生成的 SIGINT 信号,且在未检查是否忽略该信号的情况下捕获它,那么 Shell 所做的安排可能会失效。此外,像 vi 编辑器这类交互式工具,常借助键盘中断使程序回到顶层,这可通过信号捕获与 longjmp 机制结合实现。

当信号处理函数返回,或者进程在被 ctrl + z(SIGTTSP)停止后恢复时,进程会从被中断的精确位置继续执行。对于被中断的系统调用,外部 errno 会被设为 EINTR,且系统调用返回 -1。若进程在从键盘读取输入时被中断,可能会丢失中断前部分输入的行。

若想获取 Linux 系统调用列表,可查看 syscall 的 HTML 版手册页,syscall 是用于发起所有系统调用的系统调用。可从相关资源页面找到该手册页。还有示例代码展示了如何使用 syscall,如 ex11/sysopen.c。POSIX 标准文档可从 IEEE 购买。

2. I/O 描述符与系统调用

所有打开的 I/O 通道都由 I/O 描述符表示。借助 I/O 描述符,Linux 内核能统一处理文件、设备和进程间的 I/O,这为 I/O 编程带来了极大的灵活性和便利性。C 程序进行 I/O 操作时,可使用低级系统调用或高级标准 I/O 库例程。I/O 描述符由小整数标识,三个预打开的描述符 0、1 和 2 分别让每个进程访问标准输入、输出和错误输出。

除了一套完整的文件操作调用,Linux 还提供了一组用于访问目录的库函数。文件和目录相关的系统调用总结如下表:
|

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 14:31:22

36、进程间与网络通信详解

进程间与网络通信详解 进程间双向管道通信测试 为了测试 pipe_2way 函数,我们编写一个程序,将字符发送给 lowercase 命令,然后接收转换后的字符串。这里使用 readl 函数来完成接收操作,其代码如下: int readl(int fd, char s[], int size) {char *tmp = s;while…

作者头像 李华
网站建设 2026/7/7 11:08:49

Kimi-VL多模态模型技术突破:小参数实现大能力的范式革新

在人工智能多模态领域,参数规模与性能表现的平衡始终是行业研究的核心命题。近日,深度求索(DeepSeek)团队发布的Kimi-VL技术报告揭示了一种突破性解决方案——通过混合专家(MoE)架构设计,仅激活…

作者头像 李华
网站建设 2026/7/7 17:01:30

2、Linux 设备驱动开发入门指南

Linux 设备驱动开发入门指南 1. 自由操作系统的优势与设备驱动的作用 自由操作系统(如 Linux)的一大优势在于其内部代码开放,任何人只要具备相应技能,都能查看、理解和修改。Linux 让操作系统开发变得更加民主,但 Linux 内核代码庞大复杂,对于想要深入研究内核的开发者…

作者头像 李华
网站建设 2026/7/7 2:01:00

11、Linux 中断处理全解析

Linux 中断处理全解析 1. 中断概述 在计算机系统中,多数实际设备要与外部世界交互,其操作时间框架与处理器不同且慢得多。为避免处理器等待外部事件,设备需一种方式通知处理器事件发生,这就是中断。中断是硬件向处理器发出的信号,Linux 处理中断的方式与处理用户空间信号…

作者头像 李华
网站建设 2026/7/6 16:09:44

腾讯Hunyuan-Large模型优化:LoRA微调技术提升提示重写效率

腾讯Hunyuan-Large模型优化:LoRA微调技术提升提示重写效率 【免费下载链接】HunyuanVideo 项目地址: https://ai.gitcode.com/hf_mirrors/tencent/HunyuanVideo 在人工智能大模型应用日益广泛的今天,如何提升模型在特定任务上的性能和效率成为业…

作者头像 李华
网站建设 2026/7/7 9:18:03

27、设备驱动接口与系统初始化程序详解

设备驱动接口与系统初始化程序详解 1. 设备驱动接口 1.1 发现硬件配置 设备驱动通常用于与硬件交互,但虚拟驱动仅操作内存结构,缺乏与真实硬件的交互。在发现硬件配置时,部分硬件可自行提供信息,如PCI或USB总线上的设备有查询模式,能返回资源需求和唯一标识符,内核会将…

作者头像 李华