From 071cba94f91514f4a142198ffc8985a6061bfcb1 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 21 Nov 2013 13:34:01 +0100 Subject: [PATCH] Added DTSC::File error checking --- lib/dtsc.cpp | 8 ++++++++ lib/dtsc.h | 1 + 2 files changed, 9 insertions(+) diff --git a/lib/dtsc.cpp b/lib/dtsc.cpp index b50e7aa4..01063ff6 100644 --- a/lib/dtsc.cpp +++ b/lib/dtsc.cpp @@ -575,11 +575,19 @@ DTSC::File & DTSC::File::operator =(const File & rhs){ memcpy(buffer, rhs.buffer, 4); } +DTSC::File::operator bool() const{ + return F; +} + /// Open a filename for DTSC reading/writing. /// If create is true and file does not exist, attempt to create. DTSC::File::File(std::string filename, bool create){ if (create){ F = fopen(filename.c_str(), "w+b"); + if(!F){ + std::cerr << "Could not create file" << filename << ": " << strerror(errno) << std::endl; + return; + } //write an empty header fseek(F, 0, SEEK_SET); fwrite(DTSC::Magic_Header, 4, 1, F); diff --git a/lib/dtsc.h b/lib/dtsc.h index 2b00cc94..28fe8993 100644 --- a/lib/dtsc.h +++ b/lib/dtsc.h @@ -60,6 +60,7 @@ namespace DTSC { File(const File & rhs); File(std::string filename, bool create = false); File & operator = (const File & rhs); + operator bool() const; ~File(); JSON::Value & getMeta(); long long int getLastReadPos();