diff options
author | eschnett <eschnett@b32723a9-ab3a-4a60-88e2-2e5d99d7c17a> | 2012-11-20 23:14:34 +0000 |
---|---|---|
committer | eschnett <eschnett@b32723a9-ab3a-4a60-88e2-2e5d99d7c17a> | 2012-11-20 23:14:34 +0000 |
commit | 667a48f1e4b3f6bc0bd52198832baec46c2fb05d (patch) | |
tree | 3c170547d761ee4f47146eae1a1be27f5fe10c10 | |
parent | 928b224243e765d0fc700e84f42d7c0f2204fe3d (diff) |
Report error when parameter file cannot be written
git-svn-id: http://svn.cactuscode.org/arrangements/CactusBase/IOUtil/trunk@292 b32723a9-ab3a-4a60-88e2-2e5d99d7c17a
-rw-r--r-- | src/Startup.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/Startup.c b/src/Startup.c index 8a66e7d..6a21e28 100644 --- a/src/Startup.c +++ b/src/Startup.c @@ -425,7 +425,7 @@ static void *SetupGH (tFleshConfig *config, int convergence_level, cGH *GH) @@*/ static int CopyParFile (int recovered) { - int in_parfile, out_parfile, bytes, flags; + int in_parfile, out_parfile, bytes, bytes_written, flags; char *out_parfilename, buffer[256]; const char *my_parfile_name; struct stat in_stat_buf, out_stat_buf; @@ -489,7 +489,22 @@ static int CopyParFile (int recovered) { while ((bytes = read (in_parfile, buffer, sizeof (buffer))) > 0) { - write (out_parfile, buffer, bytes); + bytes_written = write (out_parfile, buffer, bytes); + if (bytes_written != bytes) + { + if (bytes_written < 0) + { + CCTK_VWarn (3, __LINE__, __FILE__, CCTK_THORNSTRING, + "Error while writing parameter file '%s' (%s)", + out_parfilename, strerror (errno)); + } + else + { + CCTK_VWarn (3, __LINE__, __FILE__, CCTK_THORNSTRING, + "Error while writing parameter file '%s'", + out_parfilename); + } + } } close (out_parfile); } |