当前位置: 首页 > news >正文

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 还提供了一组用于访问目录的库函数。文件和目录相关的系统调用总结如下表:
|

http://www.cnnetsun.cn/news/28486.html

相关文章:

  • SElinux策略文件配置
  • 瑞士发布国家级开源大模型Apertus:AI公共基础设施的全球新范式
  • 2025年AI推理里程碑:Inclusion AI开源万亿参数模型Ring-1T,数学推理性能跃升14%
  • 5、内核调试技术全解析
  • 8、Linux内核中的时间处理、延迟与异步工作调度
  • 10、与硬件通信:I/O端口和内存的使用指南
  • 17、Linux 块设备驱动开发全面解析
  • 20、Linux内核开发资源与技术要点解析
  • 29、Linux系统启动与电源管理全解析
  • 32、深入理解进程与线程
  • 45、基于IP地址十六进制表示创建软件密钥及任意进制转换脚本
  • 中文跨模态里程碑:Chinese-CLIP-ViT-Base-Patch16模型深度解析与应用指南
  • 开源多模态新突破:CogVLM2-LLaMA3-Chat-19B-Int4模型深度解析与应用指南
  • 43、Samba与不同操作系统的连接及OS/2系统的使用配置
  • 45、Samba配置中的操作系统特定问题与GNU GPL协议解读
  • 47、网络技术与Samba服务全面解析
  • 40亿参数掀起AI效率革命:Qwen3-4B-FP8重新定义轻量级大模型技术标杆
  • 文心ERNIE4.5工程化部署指南:FastDeploy性能优化与多场景实测报告
  • 14、Docker Swarm 集群搭建与管理指南
  • NVIDIA Canary-Qwen-2.5B震撼发布:语音识别领域的颠覆性突破,5.63%词错率刷新行业标杆
  • 人工智能:引领未来科技变革的核心引擎
  • 轻量级科研利器:Qwen3-Reranker-0.6B重构文献检索范式
  • 39、Linux内核内存管理:固定映射地址与ioremap解析
  • 10、BPF 工具使用指南与技巧
  • 43、保障Web与文件服务安全:技术、挑战与应对策略
  • 47、安全文件服务配置指南
  • 49、Linux文件共享与日志管理全解析
  • 52、系统日志管理与监控全解析
  • 54、系统日志管理、监控与入侵检测技术详解
  • 强力解锁游戏控制器兼容性:ViGEmBus虚拟驱动深度指南