128 std::vector<std::string> filenames;
133 int picked_number = -1;
134 for (
size_t i = 0; i < filenames.size(); i++) {
137 int(number) > picked_number) {
138 fname =
dbname_ +
"/" + filenames[i];
139 picked_number = number;
145 if (stat(fname.c_str(), &sbuf) != 0) {
146 const char* msg = strerror(errno);
152 if (-offset > sbuf.st_size) {
155 offset = sbuf.st_size + offset;
158 if (offset > sbuf.st_size) {
159 offset = sbuf.st_size;
161 if (offset + bytes_to_corrupt > sbuf.st_size) {
162 bytes_to_corrupt = sbuf.st_size - offset;
166 std::string contents;
169 for (
int i = 0; i < bytes_to_corrupt; i++) {
170 contents[i + offset] ^= 0x80;
Status WriteStringToFile(Env *env, const Slice &data, const std::string &fname)
bool ParseFileName(const std::string &fname, uint64_t *number, FileType *type)
Status GetChildren(const std::string &dir, std::vector< std::string > *r)
Status ReadFileToString(Env *env, const std::string &fname, std::string *data)