news 2026/10/15 16:00:57

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/10/15 9:10:56

37、进程间与网络通信技术全解析

进程间与网络通信技术全解析 1. 进程间通信基础 在网络通信中,构建服务器套接字地址结构是关键的一步。以下是相关代码示例: receiver.sin_port=htons(atoi(argv[2])); /* (3) */ struct hostent *hp = gethostbyname(argv[1]); if ( hp == NULL ) {sprintf(buf, "%s…

作者头像 李华
网站建设 2026/10/15 14:51:33

JAVA微服务与分布式(概念版)

分布式系统 简单理解 分布式系统 多台机器一起干活,对外看起来像一台 想象一下:你开了一家奶茶店。最开始你一个人搞定所有事——接单、做奶茶、收钱。但生意太好了,一个人忙不过来,于是你雇了3个员工:一个专门接单…

作者头像 李华
网站建设 2026/10/15 3:34:43

基于 STM32 的数控 BUCK-BOOST 升降压电源设计

摘要针对传统线性电源效率低、输出范围窄,普通开关电源模式切换需手动干预、保护功能单一的问题,设计一款基于 STM32F103C8T6 微控制器的数控升降压电源。该电源采用 BUCK-BOOST 拓扑结构,实现 0~48V 宽范围直流输出,支持升降压模…

作者头像 李华
网站建设 2026/10/14 11:12:13

本地AI革命:Locally AI重塑移动设备隐私计算新范式

在人工智能技术迅猛发展的当下,用户对于智能交互的需求与隐私保护的诉求正形成前所未有的张力。Locally AI这款创新性应用的横空出世,通过将先进AI模型完全部署于终端设备,开创了"隐私优先"的智能交互新纪元。该应用全面覆盖Apple生…

作者头像 李华
网站建设 2026/10/15 11:08:34

智谱AI发布GLM-4.5V-FP8视觉语言模型,多模态理解能力突破行业纪录

智谱AI发布GLM-4.5V-FP8视觉语言模型,多模态理解能力突破行业纪录 【免费下载链接】GLM-4.5V-FP8 项目地址: https://ai.gitcode.com/zai-org/GLM-4.5V-FP8 2024年人工智能领域再添重磅成果,智谱AI正式发布新一代视觉语言模型GLM-4.5V-FP8。该模…

作者头像 李华