PR_Open

打开文件以进行读取、写入或同时进行读取和写入。也用于创建文件。

语法

#include <prio.h>

PRFileDesc* PR_Open(
  const char *name,
  PRIntn flags,
  PRIntn mode);

参数

该函数具有以下参数

name

要打开的文件的路径名。

flags

文件状态标志定义如何访问文件。它是以下位标志的按位 OR 操作。在大多数情况下,只能使用前三个标志中的一个。如果 flags 参数不包含前三个标志中的任何一个(PR_RDONLYPR_WRONLYPR_RDWR),则无法读取或写入打开的文件,这没有用处。

注意

常量 PR_RDWR 及其相关常量不在任何接口中 (bug 433295)。因此,它们不能在 JavaScript 中使用,您必须使用八进制常量(请参阅 文件 I/O 代码片段)。

名称

描述

PR_RDONLY

0x01

只读打开。

PR_WRONLY

0x02

只写打开。

PR_RDWR

0x04

读写打开。

PR_CREATE_FILE

0x08

如果文件不存在,则创建文件。如果文件存在,则此标志无效。

PR_APPEND

0x10

在每次写入之前,文件指针都设置为文件末尾。

PR_TRUNCATE

0x20

如果文件存在,则其长度将截断为 0。

PR_SYNC

0x40

如果设置,则每次写入都将等待文件数据和文件状态都物理更新。

PR_EXCL

0x80

PR_CREATE_FILE 结合使用,如果文件不存在,则创建文件。如果文件已存在,则不执行任何操作并返回 NULL。

mode

当设置 PR_CREATE_FILE 标志并创建文件时,这些标志定义新创建文件的访问权限位。此功能目前仅适用于 Unix 平台。其他平台会忽略它,但将来可能会应用于其他平台。下面列出了 mode 参数的可能值。

名称

描述

PR_IRWXU

0700

所有者具有读、写、执行/搜索权限。

PR_IRUSR

0400

所有者具有读权限。

PR_IWUSR

0200

所有者具有写权限。

PR_IXUSR

0100

所有者具有执行/搜索权限。

PR_IRWXG

0070

组具有读、写、执行/搜索权限

PR_IRGRP

0040

组具有读权限

PR_IWGRP

0020

组具有写权限

PR_IXGRP

0010

组具有执行/搜索权限

PR_IRWXO

0007

其他用户具有读、写、执行/搜索权限

PR_IROTH

0004

其他用户具有读权限

PR_IWOTH

0002

其他用户具有写权限

PR_IXOTH

0001

其他用户具有执行/搜索权限

返回值

该函数返回以下值之一

  • 如果文件成功打开,则返回指向为新打开的文件动态分配的 PRFileDesc 的指针。应通过调用 PR_Close 释放 PRFileDesc

  • 如果文件未成功打开,则返回 NULL 指针。

描述

PR_Open 为具有路径名 name 的文件创建文件描述符 (PRFileDesc),并根据 flags 的值设置文件描述符的文件状态标志。如果由于 PR_Open 调用而创建了一个新文件,则其文件模式位将根据 mode 参数设置。