The %open() function opens the host OS file specified by str and sets the file status flags according to the value of oflag.
file.descriptor = %open(str, oflag, pmode)
str | Specifies the file name to open or create. | |
oflag | Specifies the status of the file. Valid values are defined in the include file: fcntl.h. Multiple flags can be specified in the syntax. | |
O$APPEND | Moves the file pointer to the end of the file. | |
O$BINARY | Opens in binary mode. | |
O$CREAT | Creates a new file with the name specified in str. Owner-ID and group-ID are set and the mode of the file is set according to the value of mode modified as follows: all bits in the file mode creation mask of the process are cleared and the sticky bit is cleared. If mode is not specified, the file is opened with read and write permissions. | |
O$EXCL | If O$EXCL and O$CREAT are set, open fails if the file exists. | |
O$NDELAY | Nonblocking I/O. The effect of this flag varies depending on the type of the file. See host OS system documentation. | |
O$RDONLY | Opens for reading only. | |
O$RDWR | Opens for reading and writing. | |
O$SYNC | Synchronized writes. | |
O$TEXT | Opens in text mode and translates text (default). For example, ^Z is assumed to be an end of line. | |
O$TRUNC | If the file exists, its length is set to 0. | |
O$WRONLY | Opens for writing only. | |
pmode | Specifies the read-write permissions for newly created files opened with the O$CREAT flag. Valid values are defined in the include file: mode.h. If no value is specified, the file is opened with read and write permissions. | |
S$IRUSR | Opens a new file with read only permissions. (UNIX) | |
S$IWUSR | Opens a new file with write only permissions. (UNIX) | |
S$IREAD | Opens a new file with read only permissions. (Windows) | |
S$IWRITE | Opens a new file with write only permissions. (Windows) |
Files opened by %open() are closed automatically when the FlashBASIC program terminates.
The file descriptor is returned as a number or -1 if an error occurred. system(0) contains the error number.
There is a limit on the number of host OS files a process can have opened simultaneously. See your platform documentation.
Files opened by a FlashBASIC program are normally closed automatically when the program terminates. However, it is a good practice to close them.
include dm,bp,unix.h fcntl.h fd=%open(’fname’, o$wronly+o$append) if fd<0 then crt ’Cannot open. errno=’:system(0) end