Understanding Unix/Linux Programming-文件、设备和流

本文介绍了Unix/Linux系统中用于控制设备的系统调用ioctl的基本概念及其使用方法。ioctl通过特定的文件描述符实现对设备的控制操作,适用于各种类型的设备文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每个设备文件都支持系统调用 ioctl:

  • 目标:控制一个设备
  • 头文件:#include<sys/ioctl.h>
  • 函数原型:int result = ioctl(int fd , int operation [,arg...]);
  • 参数
    • fd : 文件所关联的文件描述符
    • operation:操作类型
    • arg:可选参数
    • result:-1即错误;0即正确;

  实际上,任何数据的源或者目的地都被Unix视为文件来处理,基本的系统调用既支持磁盘文件,也适用于设备文件。它们的区别体现在对于连接的操作上。磁盘文件的文件描述符包含对缓冲属性和扩展属性的定义代码;而终端的文件描述符包含编辑、回显、字符转换和其他操作的定义代码。

  可以吧每个处理步骤看作是连接的属性,也可以把连接看作是处理步骤的组合。

  基础的数据流模型的一个重要特征是处理的模块化,如果不满意仅能支持像大小写转换这样的终端驱动程序,可以设计安装一个可将数字转换为罗马数字的模块,不过我就不编了哈(逃)。

  另外,Unix/Linux编程实践看了150页左右,虽然只是跟着书编写了书中现有的代码,没有多做练习,但是还是觉得对与系统的了解加深了不少啊,过完这本书再去肯操作系统,哈哈哈,不知道顺序有没有弄反。

转载于:https://www.cnblogs.com/NJdonghao/p/5285214.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值