45 return isatty(STDERR_FILENO);
48 void io_local_time_get(
char res[IO_TIME_BUFFER_LEN])
50 time_t t = time(NULL);
51 struct tm *loc_t = localtime(&t);
52 strftime(res, IO_TIME_BUFFER_LEN,
"%H:%M:%S", loc_t);
68 HANDLE term = GetStdHandle(STD_ERROR_HANDLE);
69 if (term == NULL || term == INVALID_HANDLE_VALUE)
73 if (!GetConsoleMode(term, &cmode))
76 return SetConsoleMode(term, cmode | ENABLE_VIRTUAL_TERMINAL_PROCESSING);
79 void io_local_time_get(
char res[IO_TIME_BUFFER_LEN])
85 _localtime64_s(&loc_t, &long_time);
86 strftime(res, IO_TIME_BUFFER_LEN,
"%H:%M:%S", &loc_t);
91 TCHAR tmp_folder_path[MAX_PATH + 1];
92 if (!GetTempPath(MAX_PATH + 1, tmp_folder_path))
95 TCHAR tmp_path[MAX_PATH];
96 if (!GetTempFileName(tmp_folder_path, TEXT(
"ROOTSIM"), 0, tmp_path))
99 SECURITY_ATTRIBUTES tmp_sa = {
sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
100 HANDLE h = CreateFile(
101 tmp_path, GENERIC_READ | GENERIC_WRITE,
102 FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
103 &tmp_sa, CREATE_ALWAYS,
104 FILE_ATTRIBUTE_TEMPORARY | FILE_FLAG_DELETE_ON_CLOSE, NULL);
105 if (h == INVALID_HANDLE)
108 int fd = _open_osfhandle((intptr_t)h, _O_RDWR);
112 return _fdopen(fd,
"rb+");