-namespace factor
-{
+namespace factor {
-void init_c_io();
-void io_error();
+// Safe IO functions that does not throw Factor errors.
+int raw_fclose(FILE* stream);
+size_t raw_fread(void* ptr, size_t size, size_t nitems, FILE* stream);
-PRIMITIVE(fopen);
-PRIMITIVE(fgetc);
-PRIMITIVE(fread);
-PRIMITIVE(fputc);
-PRIMITIVE(fwrite);
-PRIMITIVE(fflush);
-PRIMITIVE(fseek);
-PRIMITIVE(fclose);
-
-/* Platform specific primitives */
-PRIMITIVE(open_file);
-PRIMITIVE(existsp);
-PRIMITIVE(read_dir);
+// Platform specific primitives
VM_C_API int err_no();
-VM_C_API void clear_err_no();
+VM_C_API void set_err_no(int err);
}