-/* Copyright (C) 2001, 2009, 2010, 2011 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
int errno_save = errno;
(void) close (fd);
errno = errno_save;
- SCM_SYSERROR;
+ if (errno)
+ SCM_SYSERROR;
+ scm_misc_error (FUNC_NAME, "file truncated while reading", SCM_EOL);
}
(void) close (fd);
SCM_VALIDATE_STRING (1, file);
c_file = scm_to_locale_string (file);
- fd = open (c_file, O_RDONLY | O_CLOEXEC);
+ fd = open (c_file, O_RDONLY | O_BINARY | O_CLOEXEC);
free (c_file);
if (fd < 0) SCM_SYSERROR;