PR_PopIOLayer

从堆栈中移除一层。

语法

#include <prio.h>

PRFileDesc *PR_PopIOLayer(
  PRFileDesc *stack,
  PRDescIdentity id);

参数

该函数具有以下参数

stack

指向一个 PRFileDesc 对象的指针,该对象表示要从中移除指定层的堆栈。

id

要从堆栈中移除的层的标识。

返回值

该函数返回以下值之一

  • 如果层成功从堆栈中移除,则返回指向已移除层的指针。

  • 如果在堆栈中找不到该层或无法弹出(例如,最底层的层),则该函数返回 NULL,并返回错误代码 PR_INVALID_ARGUMENT_ERROR

描述

PR_PopIOLayer 从堆栈中弹出指定的层。如果找到要移除的对象,PR_PopIOLayer 会返回指向已移除对象的指针。然后,该对象成为调用者的责任。

即使标识指示堆栈的顶层,返回的引用也不是堆栈的文件描述符,并且该文件描述符仍然有效。换句话说,在函数返回后,stack 继续指向堆栈的顶部。