3.2.1. 数字电视解复用 open()

3.2.1.1. 名称

数字电视解复用 open()

3.2.1.2. 概要

int open(const char *deviceName, int flags)

3.2.1.3. 参数

name

特定数字电视解复用设备的名称。

flags

以下标志的按位或

O_RDONLY

只读访问

O_RDWR

读/写访问

O_NONBLOCK

以非阻塞模式打开(阻塞模式是默认模式)

3.2.1.4. 描述

此系统调用与设备名称 /dev/dvb/adapter?/demux? 一起使用,分配一个新的过滤器并返回一个句柄,该句柄可用于后续控制该过滤器。 对于要使用的每个过滤器,即每个返回的文件描述符都是对单个过滤器的引用,都必须进行此调用。 /dev/dvb/adapter?/dvr? 是一个逻辑设备,用于检索用于数字视频记录的传输流。 从该设备读取时,传输流包含来自相应解复用设备 (/dev/dvb/adapter?/demux?) 中设置的所有 PES 数据包,这些数据包的输出设置为 DMX_OUT_TS_TAP。 通过写入此设备来重放录制的传输流。

阻塞或非阻塞模式的意义在文档中描述,其中存在差异。 它不会影响 open() 调用本身的语义。 以阻塞模式打开的设备可以使用 fcntl 系统调用的 F_SETFL 命令稍后置于非阻塞模式(反之亦然)。

3.2.1.5. 返回值

成功时返回 0。

出错时返回 -1,并且 errno 变量会相应设置。

EMFILE

“打开的文件过多”,即没有更多的过滤器可用。

通用错误代码在 通用错误代码 章节中描述。