Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(160)

Side by Side Diff: base/files/file_util.h

Issue 2678813003: Disable fd/handle sharing in base::ReadFileToString. (Closed)
Patch Set: comment tweaks Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/files/file_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains utility functions for dealing with the local 5 // This file contains utility functions for dealing with the local
6 // filesystem. 6 // filesystem.
7 7
8 #ifndef BASE_FILES_FILE_UTIL_H_ 8 #ifndef BASE_FILES_FILE_UTIL_H_
9 #define BASE_FILES_FILE_UTIL_H_ 9 #define BASE_FILES_FILE_UTIL_H_
10 10
(...skipping 17 matching lines...) Expand all
28 #include <sys/stat.h> 28 #include <sys/stat.h>
29 #include <unistd.h> 29 #include <unistd.h>
30 #endif 30 #endif
31 31
32 #if defined(OS_POSIX) 32 #if defined(OS_POSIX)
33 #include "base/file_descriptor_posix.h" 33 #include "base/file_descriptor_posix.h"
34 #include "base/logging.h" 34 #include "base/logging.h"
35 #include "base/posix/eintr_wrapper.h" 35 #include "base/posix/eintr_wrapper.h"
36 #endif 36 #endif
37 37
38 // fopen() takes a mode string that is typically something along the lines of
39 // "r" or "w+". By default, files opened via fopen() are opened such that they
40 // spill into child processes via the normal platform features (e.g., the file
41 // is opened with bInheritHandle=TRUE in its security descriptor on Windows).
42 // The character for a mode string to disable this spillage is not consistent
43 // across platforms. Define the macro FONE (i.e., "fopen 'N' or 'e'") for use in
44 // cross platform code that calls base::OpenFile (or calls fopen directly).
45 #if defined(OS_WIN)
46 // "N" specifies that the underlying handle is not inherited by child processes
47 // (bInheritHandle=FALSE).
48 #define FONE "N"
49 #else // defined(OS_WIN)
50 // "e" specifies that the underlying descriptor is closed on exec (FD_CLOEXEC).
51 #define FONE "e"
52 #endif // defined(OS_WIN)
53
38 namespace base { 54 namespace base {
39 55
40 class Environment; 56 class Environment;
41 class Time; 57 class Time;
42 58
43 //----------------------------------------------------------------------------- 59 //-----------------------------------------------------------------------------
44 // Functions that involve filesystem access or modification: 60 // Functions that involve filesystem access or modification:
45 61
46 // Returns an absolute version of a relative path. Returns an empty path on 62 // Returns an absolute version of a relative path. Returns an empty path on
47 // error. On POSIX, this function fails if the path does not exist. This 63 // error. On POSIX, this function fails if the path does not exist. This
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 BASE_EXPORT bool IsLink(const FilePath& file_path); 316 BASE_EXPORT bool IsLink(const FilePath& file_path);
301 317
302 // Returns information about the given file path. 318 // Returns information about the given file path.
303 BASE_EXPORT bool GetFileInfo(const FilePath& file_path, File::Info* info); 319 BASE_EXPORT bool GetFileInfo(const FilePath& file_path, File::Info* info);
304 320
305 // Sets the time of the last access and the time of the last modification. 321 // Sets the time of the last access and the time of the last modification.
306 BASE_EXPORT bool TouchFile(const FilePath& path, 322 BASE_EXPORT bool TouchFile(const FilePath& path,
307 const Time& last_accessed, 323 const Time& last_accessed,
308 const Time& last_modified); 324 const Time& last_modified);
309 325
310 // Wrapper for fopen-like calls. Returns non-NULL FILE* on success. 326 // Wrapper for fopen-like calls. Returns non-NULL FILE* on success. By default,
327 // opened files will be inheritable by child processes. Append the FONE macro
328 // (defined above) when composing a |mode| string to disable this.
311 BASE_EXPORT FILE* OpenFile(const FilePath& filename, const char* mode); 329 BASE_EXPORT FILE* OpenFile(const FilePath& filename, const char* mode);
312 330
313 // Closes file opened by OpenFile. Returns true on success. 331 // Closes file opened by OpenFile. Returns true on success.
314 BASE_EXPORT bool CloseFile(FILE* file); 332 BASE_EXPORT bool CloseFile(FILE* file);
315 333
316 // Associates a standard FILE stream with an existing File. Note that this 334 // Associates a standard FILE stream with an existing File. Note that this
317 // functions take ownership of the existing File. 335 // functions take ownership of the existing File.
318 BASE_EXPORT FILE* FileToFILE(File file, const char* mode); 336 BASE_EXPORT FILE* FileToFILE(File file, const char* mode);
319 337
320 // Truncates an open file to end at the location of the current file pointer. 338 // Truncates an open file to end at the location of the current file pointer.
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 // This function simulates Move(), but unlike Move() it works across volumes. 466 // This function simulates Move(), but unlike Move() it works across volumes.
449 // This function is not transactional. 467 // This function is not transactional.
450 BASE_EXPORT bool CopyAndDeleteDirectory(const FilePath& from_path, 468 BASE_EXPORT bool CopyAndDeleteDirectory(const FilePath& from_path,
451 const FilePath& to_path); 469 const FilePath& to_path);
452 #endif // defined(OS_WIN) 470 #endif // defined(OS_WIN)
453 471
454 } // namespace internal 472 } // namespace internal
455 } // namespace base 473 } // namespace base
456 474
457 #endif // BASE_FILES_FILE_UTIL_H_ 475 #endif // BASE_FILES_FILE_UTIL_H_
OLDNEW
« no previous file with comments | « no previous file | base/files/file_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698