PR_Open

Opens a file for reading, writing, or both. Also used to create a file.

Syntax

#include <prio.h>

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

Parameters

The function has the following parameters:

name

The pathname of the file to be opened.

flags

The file status flags define how the file is accessed. It is a bitwise OR of the following bit flags. In most cases, only one of the first three flags may be used. If the flags parameter does not include any of the first three flags (PR_RDONLY, PR_WRONLY, or PR_RDWR), the open file can’t be read or written, which is not useful.

Note

The constants PR_RDWR and friends are not in any interface (bug 433295). Thus they cannot be used in JavaScript, you have to use the octal constants (see File I/O Snippets).

Name

Value

Description

PR_RDONLY

0x01

Open for reading only.

PR_WRONLY

0x02

Open for writing only.

PR_RDWR

0x04

Open for reading and writing.

PR_CREATE_FILE

0x08

If the file does not exist, the file is created. If the file exists, this flag has no effect.

PR_APPEND

0x10

The file pointer is set to the end of the file prior to each write.

PR_TRUNCATE

0x20

If the file exists, its length is truncated to 0.

PR_SYNC

0x40

If set, each write will wait for both the file data and file status to be physically updated.

PR_EXCL

0x80

With PR_CREATE_FILE, if the file does not exist, the file is created. If the file already exists, no action and NULL is returned.

mode

When PR_CREATE_FILE flag is set and the file is created, these flags define the access permission bits of the newly created file. This feature is currently only applicable on Unix platforms. It is ignored by any other platform but it may apply to other platforms in the future. Possible values of the mode parameter are listed in the table below.

Name

Value

Description

PR_IRWXU

0700

read, write, execute/search by owner.

PR_IRUSR

0400

read permission, owner.

PR_IWUSR

0200

write permission, owner.

PR_IXUSR

0100

execute/search permission, owner.

PR_IRWXG

0070

read, write, execute/search by group

PR_IRGRP

0040

read permission, group

PR_IWGRP

0020

write permission, group

PR_IXGRP

0010

execute/search permission, group

PR_IRWXO

0007

read, write, execute/search by others

PR_IROTH

0004

read permission, others

PR_IWOTH

0002

write permission, others

PR_IXOTH

0001

execute/search permission, others

Returns

The function returns one of the following values:

  • If the file is successfully opened, a pointer to a dynamically allocated PRFileDesc for the newly opened file. The PRFileDesc should be freed by calling PR_Close.

  • If the file was not opened successfully, a NULL pointer.

Description

PR_Open creates a file descriptor (PRFileDesc) for the file with the pathname name and sets the file status flags of the file descriptor according to the value of flags. If a new file is created as a result of the PR_Open call, its file mode bits are set according to the mode parameter.