if(!ok)
std::cout << "save-image failed: " << strerror(errno) << std::endl;
else
- MOVE_FILE(saving_filename,filename);
+ move_file(saving_filename,filename);
return ok;
}
ctx->push(tag_boolean(stat(path,&sb) >= 0));
}
+void factor_vm::move_file(const vm_char *path1, const vm_char *path2)
+{
+ int ret = 0;
+ do {
+ ret = rename((path1),(path2));
+ } while(ret < 0 && errno == EINTR);
+ if(ret < 0)
+ general_error(ERROR_IO,tag_fixnum(errno),false_object,NULL);
+}
+
segment::segment(cell size_, bool executable_p)
{
size = size_;
#define OPEN_READ(path) fopen(path,"rb")
#define OPEN_WRITE(path) fopen(path,"wb")
-#define MOVE_FILE(path1,path2) \
-do {\
- int ret = 0;\
- do {\
- ret = rename((path1),(path2));\
- } while(ret < 0 && errno == EINTR);\
- if(ret < 0)\
- general_error(ERROR_IO,tag_fixnum(errno),false_object,NULL);\
-}while(0)
#define print_native_string(string) print_string(string)
factor_vm *tls_vm();
void open_console();
+void move_file(const vm_char *path1, const vm_char *path2);
+
}
return g_pagesize;
}
+void factor_vm::move_file(const vm_char *path1, const vm_char *path2)
+{
+ if(MoveFileEx((path1),(path2),MOVEFILE_REPLACE_EXISTING) == false)
+ general_error(ERROR_IO,tag_fixnum(GetLastError()),false_object,NULL);
}
#define OPEN_READ(path) _wfopen((path),L"rb")
#define OPEN_WRITE(path) _wfopen((path),L"wb")
-#define MOVE_FILE(path1,path2)\
-do {\
- if(MoveFileEx((path1),(path2),MOVEFILE_REPLACE_EXISTING) == false)\
- std::cout << "MoveFile() failed: error " << GetLastError() << std::endl;\
-} while(0)
/* Difference between Jan 1 00:00:00 1601 and Jan 1 00:00:00 1970 */
#define EPOCH_OFFSET 0x019db1ded53e8000LL
u64 nano_count();
void sleep_nanos(u64 nsec);
long getpagesize();
+void move_file(const vm_char *path1, const vm_char *path2);
}
// os-*
void primitive_existsp();
+ void move_file(const vm_char *path1, const vm_char *path2);
void init_ffi();
void ffi_dlopen(dll *dll);
void *ffi_dlsym(dll *dll, symbol_char *symbol);