diff --git a/core/mem/virtual/file.odin b/core/mem/virtual/file.odin index 660210bbf..af0449e66 100644 --- a/core/mem/virtual/file.odin +++ b/core/mem/virtual/file.odin @@ -10,7 +10,14 @@ map_file :: proc{ } map_file_from_path :: proc(filename: string, flags: Map_File_Flags) -> (data: []byte, error: Map_File_Error) { - f, err := os.open(filename, os.O_RDWR) + open_flags : os.File_Flags + if .Read in flags { + open_flags += {.Read} + } + if .Write in flags { + open_flags += {.Write} + } + f, err := os.open(filename, open_flags) if err != nil { return nil, .Open_Failure } @@ -37,4 +44,4 @@ unmap_file :: proc(data: []byte) { if raw_data(data) != nil { _unmap_file(data) } -} \ No newline at end of file +}