in include/yyjson/yyjson.c [8232:8256]
static bool write_dat_to_file(const char *path, u8 *dat, usize len,
yyjson_write_err *err) {
#define return_err(_code, _msg) do { \
err->msg = _msg; \
err->code = YYJSON_WRITE_ERROR_##_code; \
if (file) fclose(file); \
return false; \
} while (false)
FILE *file = fopen_writeonly(path);
if (file == NULL) {
return_err(FILE_OPEN, "file opening failed");
}
if (fwrite(dat, len, 1, file) != 1) {
return_err(FILE_WRITE, "file writing failed");
}
if (fclose(file) != 0) {
file = NULL;
return_err(FILE_WRITE, "file closing failed");
}
return true;
#undef return_err
}