/* Find the auxiliary file called `filename'; returns a fd for the file on success, -1 if it couldn't find the file */ static compat_fd utils_find_auxiliary_file( const char *filename, utils_aux_type type ) { compat_fd fd; char path[ PATH_MAX ]; /* If given an absolute path, just look there */ if( compat_is_absolute_path( filename ) ) return compat_file_open( filename, 0 ); /* Otherwise look in some likely locations */ if( utils_find_file_path( filename, path, type ) ) { return COMPAT_FILE_OPEN_FAILED; } fd = compat_file_open( path, 0 ); if( fd != COMPAT_FILE_OPEN_FAILED ) return fd; /* Give up. Couldn't find this file */ return COMPAT_FILE_OPEN_FAILED; }
int compat_file_exists(const char *path) { log_cb(RETRO_LOG_INFO, "Checking if \"%s\" exists\n", path); int exists = 0; compat_fd fd = compat_file_open(path, 0); if (fd != COMPAT_FILE_OPEN_FAILED) { compat_file_close(fd); exists = 1; } return exists; }
int utils_read_file( const char *filename, utils_file *file ) { compat_fd fd; int error; fd = compat_file_open( filename, 0 ); if( fd == COMPAT_FILE_OPEN_FAILED ) { ui_error( UI_ERROR_ERROR, "couldn't open '%s': %s", filename, strerror( errno ) ); return 1; } error = utils_read_fd( fd, filename, file ); if( error ) return error; return 0; }
int utils_write_file( const char *filename, const unsigned char *buffer, size_t length ) { compat_fd fd; fd = compat_file_open( filename, 1 ); if( fd == COMPAT_FILE_OPEN_FAILED ) { ui_error( UI_ERROR_ERROR, "couldn't open `%s' for writing: %s\n", filename, strerror( errno ) ); return 1; } if( compat_file_write( fd, buffer, length ) ) { compat_file_close( fd ); return 1; } if( compat_file_close( fd ) ) return 1; return 0; }