omode (расшифровывается как Open Mode), является вторым аргументом для системного вызова open в операционной системе xv6 и представляет режим (ы), которые будут использоваться при открытии файла, имя и путь которого были заданы в первом аргументе.
Из официальной книги xv6 :
open (имя файла, флаги) Открыть файл; флаги обозначают чтение / запись
Допустимые опции для этого поля: (определения находятся в fcntl.h):
#define O_RDONLY 0x000
#define O_WRONLY 0x001
#define O_RDWR 0x002
#define O_CREATE 0x200
Где:
- O_RDONLY - указывает, что файл должен быть открыт в режиме только для чтения. Не разрешать запись в файл, представленный дескриптором файла, возвращенного из открытого вызова.
- O_WRONLY - То же, что и выше, но позволяет писать только без чтения.
- O_RDWR - разрешает чтение и запись.
- O_CREATE - позволяет открывать, чтобы создать данный файл, если он еще не существует.
Вы также можете следовать коду чуть дальше и посмотреть, где используются читаемые и доступные для записи:
чтение читаемых блоков, когда это не разрешено:
// Read from file f.
int
fileread(struct file *f, char *addr, int n)
{
int r;
if(f->readable == 0)
return -1;
...
записываемые произведения, похожие на записи:
// Write to file f.
int
filewrite(struct file *f, char *addr, int n)
{
int r;
if(f->writable == 0)
return -1;
...