File system
File system open
// INCLUDE
#include <fcntl.h>
// PROTOTYPE
int open(const char* pathname, int flags, ... /* arg */)
// EXAMPLE
int fd = open("/FileSystemTest/test1.txt", O_RDWR | O_CREAT | O_TRUNC);
if (fd != -1) {
for(int ii = 0; ii < 100; ii++) {
String msg = String::format("testing %d\n", ii);
write(fd, msg.c_str(), msg.length());
}
close(fd);
}
Open a file for reading or writing, depending on the flags.
pathname: The pathname to the file (Unix-style, with forward slash as the directory separator).flags: These flags specify the read or write mode:O_RDWR: Read or write.O_RDONLY: Read only.O_WRONLY: Write only.
These optional flags can be logically ORed with the read/write mode:
O_CREAT: The file is created if it does not exist (see alsoO_EXCL).O_EXCL: IfO_CREAT | O_EXCLare set, then the file is created if it does not exist, but returns -1 and setserrnotoEEXISTif file already exists.O_TRUNCIf the file exists and is opened in modeO_RDWRorO_WRONLYit is truncated to zero length.O_APPEND: The file offset is set to the end of the file prior to each write.
Returns: A file descriptor number (>= 3) or -1 if an error occurs.
On error, returns -1 and sets errno. Some possible errno values include:
EINVALPathname was NULL, invalid flags.ENOMEMOut of memory.EEXISTFile already exists when usingO_CREAT | O_EXCL.
When you are done accessing a file, be sure to call close on the file descriptor.
Opening the same path again without closing opens up a new file descriptor each time, as is the case in UNIX.