打印机后端数据流

后端的主要用途是向设备(通常是打印机)发送字符。

每次打印一个文件或一组文件时都会调用一次打印机后端,每个文件的名称则作为参数传递给后端。 后端打开文件、读取文件,并将它发送到设备。 后端操作的建议方法是写入其标准输出, qdaemon 进程将设备打开到正确的文件描述符上。 这需要在 qconfig 文件中设置 file 字段。

要打印的文件名可以是直接路径名也可以是相对的路径名。 后端的用户标识和组标识是调用 enq 命令的进程的用户标识和组标识。

当后端被调用时,它可以访问用户的环境。 为了访问用户的环境,后端可以调用 getenv 子例程 (请参阅 getenv 子例程以获取更多信息)。 例如,为了访问用户的目录,getenv(PWD) 会返回一个指向目录名称的指针。 后端可以使用这个指针从此目录中读出或写入此目录。

如果后端写入它的标准输出,那么 qdaemon 以 root 用户模式打开设备。 如果后端需要自己打开设备, 那么它必须具有打开设备的正确权限。 因为后端以发送打印作业的用户权限运行, 所以您可能需要更改设备保护或安装后端 set-user-ID 或 set-group-ID。

尽管 stdout(甚至 stdin)的设置可能被 qconfig 文件中的 fileaccess 字段覆盖,但在缺省情况下,stdin、stdoutstderr 都对 NULL 设备(/dev/null)有效。