|  | // Copyright (c) 2022 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef TOOLS_GN_ATOMIC_WRITE_H_ | 
|  | #define TOOLS_GN_ATOMIC_WRITE_H_ | 
|  |  | 
|  | #include "base/files/file_path.h" | 
|  |  | 
|  | namespace util { | 
|  |  | 
|  | // Writes the given buffer into the file, overwriting any data that was | 
|  | // previously there. The write is performed atomically by first writing the | 
|  | // contents to a temporary file and then moving it into place. Returns the | 
|  | // number of bytes written, or -1 on error. | 
|  | int WriteFileAtomically(const base::FilePath& filename, | 
|  | const char* data, | 
|  | int size); | 
|  |  | 
|  | }  // namespace util | 
|  |  | 
|  | #endif  // TOOLS_GN_ATOMIC_WRITE_H_ |