OPEN(2) System Calls Manual OPEN(2)NAME
open - open for reading or writing
SYNOPSIS
open(name, mode)
char *name;
DESCRIPTION
Open opens the file name for reading (if mode is 0), writing (if mode is 1) or for both reading and writing (if mode is 2). Name is the
address of a string of ASCII characters representing a path name, terminated by a null character.
The file is positioned at the beginning (byte 0). The returned file descriptor must be used for subsequent calls for other input-output
functions on the file.
SEE ALSO creat(2), read(2), write(2), dup(2), close(2)DIAGNOSTICS
The value -1 is returned if the file does not exist, if one of the necessary directories does not exist or is unreadable, if the file is
not readable (resp. writable), or if too many files are open.
ASSEMBLER
(open = 5.)
sys open; name; mode
(file descriptor in r0)
OPEN(2)
Check Out this Related Man Page
OPEN(2) System Calls Manual OPEN(2)NAME
open, create, close - open a file for reading or writing, create file
SYNOPSIS
#include <u.h>
#include <libc.h>
int open(char *file, int omode)
int create(char *file, int omode, ulong perm)
int close(int fd)
DESCRIPTION
Open opens the file for I/O and returns an associated file descriptor. Omode is one of OREAD, OWRITE, ORDWR, or OEXEC, asking for permis-
sion to read, write, read and write, or execute, respectively. In addition, there are three values that can be ORed with the omode: OTRUNC
says to truncate the file to zero length before opening it; OCEXEC says to close the file when an exec(2) or execl system call is made; and
ORCLOSE says to remove the file when it is closed (by everyone who has a copy of the file descriptor). Open fails if the file does not
exist or the user does not have permission to open it for the requested purpose (see stat(2) for a description of permissions). The user
must have write permission on the file if the OTRUNC bit is set. For the open system call (unlike the implicit open in exec(2)), OEXEC is
actually identical to OREAD.
Create creates a new file or prepares to rewrite an existing file, opens it according to omode (as described for open), and returns an
associated file descriptor. If the file is new, the owner is set to the userid of the creating process group; the group to that of the
containing directory; the permissions to perm ANDed with the permissions of the containing directory. If the file already exists, it is
truncated to 0 length, and the permissions, owner, and group remain unchanged. The created file is a directory if the CHDIR bit is set in
omode. It is an exclusive-use file if the CHEXCL bit is set. Such files may be open for I/O by only one client at a time, but the file
descriptor may become invalid if no I/O is done for an extended period; see open(5).
Create fails if the path up to the last element of file cannot be evaluated, if the user doesn't have write permission in the final direc-
tory, or if the file already exists and does not permit the access defined by omode. If the file is new and the directory in which it is
created is a union directory (see intro(2)) then the constituent directory where the file is created depends on the structure of the union:
see bind(2).
Close closes the file associated with a file descriptor. Provided the file descriptor is a valid open descriptor, close is guaranteed to
close it; there will be no error. Files are closed automatically upon termination of a process; close allows the file descriptor to be
reused.
SOURCE
/sys/src/libc/9syscall
SEE ALSO intro(2), bind(2), stat(2)DIAGNOSTICS
These functions set errstr.
OPEN(2)