Change-Id: Ie01c1d7861d29220762c4df7aea8fffca533d283
Signed-off-by: Jaemin Ryu <jm77.ryu@samsung.com>
off_t size() const;
void create(mode_t mode);
+ void create(int flags, mode_t mode);
void open(int flags);
void read(void *buffer, const size_t size) const;
void write(const void *buffer, const size_t size) const;
}
}
+void File::create(int flags, mode_t mode)
+{
+ if (descriptor != -1) {
+ close();
+ }
+
+ while (1) {
+ descriptor = ::open(path.c_str(), O_CREAT | flags, mode);
+ if (descriptor == -1) {
+ if (errno == EINTR) {
+ continue;
+ }
+ throw runtime::Exception(runtime::GetSystemErrorMessage());
+ }
+ return;
+ }
+}
+
void File::open(int flags)
{
if (descriptor != -1) {