OLD | NEW |
---|---|
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 #include "base/file_util.h" | 5 #include "base/file_util.h" |
6 | 6 |
7 #include <dirent.h> | 7 #include <dirent.h> |
8 #include <errno.h> | 8 #include <errno.h> |
9 #include <fcntl.h> | 9 #include <fcntl.h> |
10 #include <libgen.h> | 10 #include <libgen.h> |
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
644 | 644 |
645 FILE* OpenFile(const FilePath& filename, const char* mode) { | 645 FILE* OpenFile(const FilePath& filename, const char* mode) { |
646 ThreadRestrictions::AssertIOAllowed(); | 646 ThreadRestrictions::AssertIOAllowed(); |
647 FILE* result = NULL; | 647 FILE* result = NULL; |
648 do { | 648 do { |
649 result = fopen(filename.value().c_str(), mode); | 649 result = fopen(filename.value().c_str(), mode); |
650 } while (!result && errno == EINTR); | 650 } while (!result && errno == EINTR); |
651 return result; | 651 return result; |
652 } | 652 } |
653 | 653 |
654 int ReadFile(const FilePath& filename, char* data, int size) { | 654 int ReadFile(const FilePath& filename, char* data, int max_size) { |
655 ThreadRestrictions::AssertIOAllowed(); | 655 ThreadRestrictions::AssertIOAllowed(); |
656 int fd = HANDLE_EINTR(open(filename.value().c_str(), O_RDONLY)); | 656 int fd = HANDLE_EINTR(open(filename.value().c_str(), O_RDONLY)); |
657 if (fd < 0) | 657 if (fd < 0) |
658 return -1; | 658 return -1; |
659 | 659 |
660 ssize_t bytes_read = HANDLE_EINTR(read(fd, data, size)); | 660 ssize_t bytes_read = HANDLE_EINTR(read(fd, data, max_size)); |
Mark Mentovai
2014/04/17 16:21:57
I kinda feel like if this was a short read but EOF
fukino
2014/04/18 02:22:12
Thank you for suggestion!
I didn't realize any cas
| |
661 if (int ret = IGNORE_EINTR(close(fd)) < 0) | 661 if (int ret = IGNORE_EINTR(close(fd)) < 0) |
Mark Mentovai
2014/04/17 16:21:57
You don’t need to track |ret| here, you can just
fukino
2014/04/18 02:22:12
Done for ReadFile(), WriteFile() and AppendToFile(
| |
662 return ret; | 662 return ret; |
663 return bytes_read; | 663 return bytes_read; |
664 } | 664 } |
665 | 665 |
666 int WriteFile(const FilePath& filename, const char* data, int size) { | 666 int WriteFile(const FilePath& filename, const char* data, int size) { |
667 ThreadRestrictions::AssertIOAllowed(); | 667 ThreadRestrictions::AssertIOAllowed(); |
668 int fd = HANDLE_EINTR(creat(filename.value().c_str(), 0666)); | 668 int fd = HANDLE_EINTR(creat(filename.value().c_str(), 0666)); |
669 if (fd < 0) | 669 if (fd < 0) |
670 return -1; | 670 return -1; |
671 | 671 |
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
890 result = false; | 890 result = false; |
891 if (IGNORE_EINTR(close(outfile)) < 0) | 891 if (IGNORE_EINTR(close(outfile)) < 0) |
892 result = false; | 892 result = false; |
893 | 893 |
894 return result; | 894 return result; |
895 } | 895 } |
896 #endif // !defined(OS_MACOSX) | 896 #endif // !defined(OS_MACOSX) |
897 | 897 |
898 } // namespace internal | 898 } // namespace internal |
899 } // namespace base | 899 } // namespace base |
OLD | NEW |