gpt4 book ai didi

linux - linux中的api和设备文件有什么区别?

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:22 25 4
gpt4 key购买 nike

Difference between an API and a device driver

从上面的链接我读到 API 就像一个描述做什么的规范,而驱动程序是一个描述如何做的实现。

现在,我在 linux 中找不到用于显示、音频等的 API。我还在互联网上读到 linux 提供了设备文件来与设备驱动程序交互。我们可以通过写入或读取这些文件来与设备通信,但如上所述,API 是描述要做什么的规范,这里缺少 API 层。所以,我不知道在这些文件中写入什么命令来与设备交互.借助这些设备文件对显示的图像进行光栅化处理。

最佳答案

设备文件只是在用户空间和内核之间进行通信的一种实用方式。一些设备文件(尤其是 block 设备)具有统一的 API,但这有点离题了。

对于大多数标准操作,您不会直接与设备文件交互,而是使用一个库,公开一个文档化的 API 来执行您想要的操作。所以,如果你想播放声音文件,你会使用,例如,libjack,甚至更高的抽象层,比如 gstreamerlibvlc.

这些库有可能使用设备文件作为其实际输出。除非你愿意,否则你不需要处理它。

在其他情况下,您确实希望打开设备文件并与之交互。在这些情况下,您需要阅读相关文档以了解如何操作。一些设备文件只接受readwrite 请求。其他设备,例如 tty 设备,具有修改其工作方式的 ioctl 命令。相关设备的手册页会告诉您需要了解的内容。

通常,许多人将设备文件视为内核 API 的扩展。事实上,许多人将 ioctl 命令称为“用户定义的系统调用”。在所有情况下,只需阅读文档即可了解您需要做什么。

关于linux - linux中的api和设备文件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47069384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com