From: Antonio Ospite Date: Fri, 21 Oct 2011 20:19:37 +0000 (+0200) Subject: kinect_upload_fw: fix reading the firmware file on Windows X-Git-Tag: v0.2~10 X-Git-Url: https://git.ao2.it/kinect-audio-setup.git/commitdiff_plain/15a7d9aceebe839c514bc88a9b713e46b87c5d0a?hp=d37757900b8217880f74deb0df6298f36e5ef32c kinect_upload_fw: fix reading the firmware file on Windows In MS Windows fread() behaves differently than on UNIX systems when reading binary files if we do not specify "b" in the mode when opening the file. Quoting FOPEN(3) man page: ... the 'b' is ignored on all POSIX conforming systems, including Linux. (Other systems may treat text files and binary files differently, and adding the 'b' may be a good idea if you do I/O to a binary file and expect that your program may be ported to non-UNIX environments.) --- diff --git a/kinect_upload_fw/kinect_upload_fw.c b/kinect_upload_fw/kinect_upload_fw.c index 80be29b..e544df4 100644 --- a/kinect_upload_fw/kinect_upload_fw.c +++ b/kinect_upload_fw/kinect_upload_fw.c @@ -139,7 +139,7 @@ int main(int argc, char** argv) { filename = argv[1]; } - FILE* fw = fopen(filename, "r"); + FILE* fw = fopen(filename, "rb"); if (fw == NULL) { fprintf(stderr, "Failed to open %s: %s\n", filename, strerror(errno)); return errno;