open (Debugging with GDB)
Next: close, Up: List of Supported Calls [Contents][Index]
open
- Synopsis:
int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);
- Request:
‘
Fopen,pathptr/len,flags,mode
’flags
is the bitwiseOR
of the following values:O_CREAT
If the file does not exist it will be created. The host rules apply as far as file ownership and time stamps are concerned.
O_EXCL
When used with
O_CREAT
, if the file already exists it is an error and open() fails.O_TRUNC
If the file already exists and the open mode allows writing (
O_RDWR
orO_WRONLY
is given) it will be truncated to zero length.O_APPEND
The file is opened in append mode.
O_RDONLY
The file is opened for reading only.
O_WRONLY
The file is opened for writing only.
O_RDWR
The file is opened for reading and writing.
Other bits are silently ignored.
mode
is the bitwiseOR
of the following values:S_IRUSR
User has read permission.
S_IWUSR
User has write permission.
S_IRGRP
Group has read permission.
S_IWGRP
Group has write permission.
S_IROTH
Others have read permission.
S_IWOTH
Others have write permission.
Other bits are silently ignored.
- Return value:
open
returns the new file descriptor or -1 if an error occurred.- Errors:
EEXIST
pathname
already exists andO_CREAT
andO_EXCL
were used.EISDIR
pathname
refers to a directory.EACCES
The requested access is not allowed.
ENAMETOOLONG
pathname
was too long.ENOENT
A directory component in
pathname
does not exist.ENODEV
pathname
refers to a device, pipe, named pipe or socket.EROFS
pathname
refers to a file on a read-only filesystem and write access was requested.EFAULT
pathname
is an invalid pointer value.ENOSPC
No space on device to create the file.
EMFILE
The process already has the maximum number of files open.
ENFILE
The limit on the total number of files open on the system has been reached.
EINTR
The call was interrupted by the user.
Next: close, Up: List of Supported Calls [Contents][Index]