diff --git a/src/ctrl/ctrl_core.c b/src/ctrl/ctrl_core.c index 8c8fa31b..47c3ab35 100644 --- a/src/ctrl/ctrl_core.c +++ b/src/ctrl/ctrl_core.c @@ -857,6 +857,7 @@ ctrl_init(void) String8 user_data_folder = push_str8f(scratch.arena, "%S/raddbg/logs", user_program_data_path); os_make_directory(user_data_folder); ctrl_state->ctrl_thread_log_path = push_str8f(ctrl_state->arena, "%S/ctrl_thread.raddbg_log", user_data_folder); + os_write_data_to_file_path(ctrl_state->ctrl_thread_log_path, str8_zero()); scratch_end(scratch); } ctrl_state->ctrl_thread_entity_store = ctrl_entity_store_alloc(); diff --git a/src/os/core/os_core.c b/src/os/core/os_core.c index 5f4fc32d..830fc677 100644 --- a/src/os/core/os_core.c +++ b/src/os/core/os_core.c @@ -117,7 +117,7 @@ internal B32 os_append_data_to_file_path(String8 path, String8 data) { B32 good = 0; - OS_Handle file = os_file_open(OS_AccessFlag_Write, path); + OS_Handle file = os_file_open(OS_AccessFlag_Write|OS_AccessFlag_Append, path); if(!os_handle_match(file, os_handle_zero())) { good = 1; diff --git a/src/os/core/os_core.h b/src/os/core/os_core.h index c31d2a61..ea8863da 100644 --- a/src/os/core/os_core.h +++ b/src/os/core/os_core.h @@ -13,8 +13,9 @@ enum OS_AccessFlag_Read = (1<<0), OS_AccessFlag_Write = (1<<1), OS_AccessFlag_Execute = (1<<2), - OS_AccessFlag_ShareRead = (1<<3), - OS_AccessFlag_ShareWrite = (1<<4), + OS_AccessFlag_Append = (1<<3), + OS_AccessFlag_ShareRead = (1<<4), + OS_AccessFlag_ShareWrite = (1<<5), }; //////////////////////////////// diff --git a/src/os/core/win32/os_core_win32.c b/src/os/core/win32/os_core_win32.c index 0d13d0e4..b131287f 100644 --- a/src/os/core/win32/os_core_win32.c +++ b/src/os/core/win32/os_core_win32.c @@ -664,6 +664,7 @@ os_file_open(OS_AccessFlags flags, String8 path) if(flags & OS_AccessFlag_ShareRead) {share_mode |= FILE_SHARE_READ;} if(flags & OS_AccessFlag_ShareWrite) {share_mode |= FILE_SHARE_WRITE|FILE_SHARE_DELETE;} if(flags & OS_AccessFlag_Write) {creation_disposition = CREATE_ALWAYS;} + if(flags & OS_AccessFlag_Append) {creation_disposition = OPEN_ALWAYS;} HANDLE file = CreateFileW((WCHAR *)path16.str, access_flags, share_mode, 0, creation_disposition, FILE_ATTRIBUTE_NORMAL, 0); if(file != INVALID_HANDLE_VALUE) {