From 0982ea470afb0a6064c70d326873477bb21d0b78 Mon Sep 17 00:00:00 2001 From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz> Date: Wed, 1 Nov 2017 15:56:34 +0100 Subject: [PATCH] report failure when opening a file --- alib2cli/src/builtin/ReadFile.cpp | 3 +++ alib2cli/src/builtin/WriteFile.cpp | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/alib2cli/src/builtin/ReadFile.cpp b/alib2cli/src/builtin/ReadFile.cpp index a9e45bf7a9..2664061efa 100644 --- a/alib2cli/src/builtin/ReadFile.cpp +++ b/alib2cli/src/builtin/ReadFile.cpp @@ -20,6 +20,9 @@ std::string ReadFile::read ( const std::string & filename ) { return std::string ( ( std::istreambuf_iterator < char > ( std::cin ) ), std::istreambuf_iterator < char > ( ) ); } else { std::ifstream t ( filename ); + if ( ! t.is_open ( ) ) { + throw exception::CommonException ( "File could not be opened." ); + } t >> std::noskipws; return std::string ( ( std::istreambuf_iterator < char > ( t ) ), std::istreambuf_iterator < char > ( ) ); } diff --git a/alib2cli/src/builtin/WriteFile.cpp b/alib2cli/src/builtin/WriteFile.cpp index e17baf974f..b6369141f5 100644 --- a/alib2cli/src/builtin/WriteFile.cpp +++ b/alib2cli/src/builtin/WriteFile.cpp @@ -16,8 +16,13 @@ namespace builtin { void WriteFile::write ( const std::string & filename, const std::string & data ) { if ( filename == "-" ) std::cout << data; - else - std::ofstream ( filename ) << data; + else { + std::ofstream t ( filename ); + if ( ! t.is_open ( ) ) { + throw exception::CommonException ( "File could not be opened." ); + } + t << data; + } } auto WriteFileString = registration::AbstractRegister < WriteFile, void, const std::string &, const std::string & > ( WriteFile::write ); -- GitLab