Move and rename FdopenPlatformFile to file_util

This CL also improves error handling and adds a unit test.

BUG=322664

Review URL: https://codereview.chromium.org/319543004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275986 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 4d358286200983a8b9caef7c511510397e583658
diff --git a/base/file_util_posix.cc b/base/file_util_posix.cc
index d9328ee..92e8cad 100644
--- a/base/file_util_posix.cc
+++ b/base/file_util_posix.cc
@@ -654,6 +654,16 @@
   return result;
 }
 
+// NaCl doesn't implement system calls to open files directly.
+#if !defined(OS_NACL)
+FILE* FileToFILE(File file, const char* mode) {
+  FILE* stream = fdopen(file.GetPlatformFile(), mode);
+  if (stream)
+    file.TakePlatformFile();
+  return stream;
+}
+#endif  // !defined(OS_NACL)
+
 int ReadFile(const FilePath& filename, char* data, int max_size) {
   ThreadRestrictions::AssertIOAllowed();
   int fd = HANDLE_EINTR(open(filename.value().c_str(), O_RDONLY));