diff options
Diffstat (limited to 'qpdf/qpdf-ctest.c')
-rw-r--r-- | qpdf/qpdf-ctest.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/qpdf/qpdf-ctest.c b/qpdf/qpdf-ctest.c index 12f6a4cc..c535aa23 100644 --- a/qpdf/qpdf-ctest.c +++ b/qpdf/qpdf-ctest.c @@ -10,13 +10,27 @@ static qpdf_data qpdf = 0; static FILE* safe_fopen(char const* filename, char const* mode) { - FILE* f = fopen(filename, mode); /* XXXX */ + // This function is basically a "C" port of QUtil::safe_fopen. + FILE* f = 0; +#ifdef _MSC_VER + errno_t err = fopen_s(&f, filename, mode); + if (err != 0) + { + char buf[94]; + strerror_s(buf, sizeof(buf), errno); + fprintf(stderr, "%s: unable to open %s: %s\n", + whoami, filename, buf); + exit(2); + } +#else + f = fopen(filename, mode); if (f == NULL) { fprintf(stderr, "%s: unable to open %s: %s\n", - whoami, filename, strerror(errno)); /* XXXX */ + whoami, filename, strerror(errno)); exit(2); } +#endif return f; } |