| // Copyright 2016 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "file_utils.h" |
| |
| #include <sys/stat.h> |
| |
| #include "base/logging.h" |
| #include "file_reader.h" |
| |
| namespace quipper { |
| |
| bool FileToBuffer(const string& filename, std::vector<char>* contents) { |
| FileReader reader(filename); |
| if (!reader.IsOpen()) return false; |
| size_t file_size = reader.size(); |
| contents->resize(file_size); |
| // Do not read anything if the file exists but is empty. |
| if (file_size > 0 && !reader.ReadData(file_size, contents->data())) { |
| LOG(ERROR) << "Failed to read " << file_size << " bytes from file " |
| << filename << ", only read " << reader.Tell(); |
| return false; |
| } |
| return true; |
| } |
| |
| bool FileExists(const string& filename) { |
| struct stat st; |
| return stat(filename.c_str(), &st) == 0; |
| } |
| |
| } // namespace quipper |