aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <eschnett@b32723a9-ab3a-4a60-88e2-2e5d99d7c17a>2012-11-20 23:14:34 +0000
committereschnett <eschnett@b32723a9-ab3a-4a60-88e2-2e5d99d7c17a>2012-11-20 23:14:34 +0000
commit667a48f1e4b3f6bc0bd52198832baec46c2fb05d (patch)
tree3c170547d761ee4f47146eae1a1be27f5fe10c10
parent928b224243e765d0fc700e84f42d7c0f2204fe3d (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.c19
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);
}