11namespace Adafruit_LittleFS_Namespace {
12static constexpr uint8_t _placeholder_littlefs = 0;
26 void format() { fprintf(stderr,
"warning: InternalFS.format called\n"); }
31#define FILE_O_READ "r+"
32#define FILE_O_WRITE "w+"
36 File(
InternalFSTy& InternalFS) : file {
nullptr}, filemode {
nullptr}, InternalFS {InternalFS} {}
38 bool open(
const char* fname,
const char* mode)
44 fprintf(stderr,
"fopen: opening two files?\n");
49 snprintf(filename,
sizeof(filename),
".%s", fname);
51 file = fopen(filename, mode);
54 fprintf(stderr,
"fopen: failed with %s %s\n", filename, mode);
56 return file !=
nullptr;
59 bool isOpen() {
return file !=
nullptr; }
61 bool available() {
return file !=
nullptr; }
73 fprintf(stderr,
"error: closing a closed file!\n");
81 size_t pos = ftell(file);
82 fseek(file, 0L, SEEK_END);
83 size_t size = ftell(file);
84 fseek(file, pos, SEEK_SET);
88 fprintf(stderr,
"error: measuring size on a closed file!\n");
92 size_t write(uint8_t* in,
size_t sz)
98 fprintf(stderr,
"write: (%d) ", sz);
99 for (
size_t I = 0; I < sz; ++I)
101 fprintf(stderr,
"%02x", in[I]);
103 fprintf(stderr,
"\n");
106 return fwrite(in,
sizeof(uint8_t), sz, file);
109 fprintf(stderr,
"error: writing on a closed file!\n");
113 size_t read(uint8_t* out,
size_t sz)
117 return fread(out,
sizeof(uint8_t), sz, file);
120 fprintf(stderr,
"error: reading a closed file!\n");
124 bool seek(uint8_t sz)
128 if (filemode !=
nullptr)
130 ::fseek(file, sz, 0);
135 fprintf(stderr,
"error: invalid seek filename\n");
140 fprintf(stderr,
"error: seek closed file\n");
145 void truncate(uint8_t sz)
152 if (filemode !=
nullptr)
154 ::truncate(filename, sz);
158 fprintf(stderr,
"error: invalid truncate filename\n");
161 if (filemode !=
nullptr)
163 file = fopen(filename, filemode);
167 fprintf(stderr,
"error: invalid truncate fopen\n");
172 fprintf(stderr,
"error: truncate closed file\n");
176 operator bool()
const {
return file !=
nullptr; }
180 const char* filemode;
Definition: Adafruit_LittleFS.h:35
Definition: Adafruit_LittleFS.h:17