#include <time.h>
#ifndef WIN32
#include <netinet/in.h> /* Consts and structs defined by the internet system */
+#define BINARY_FILE_OPTS
#else
#include <winsock2.h>
+#define BINARY_FILE_OPTS "b"
#endif
/* from $(INSTALLDIR)/include */
pclose(gf); \
else \
fclose(gf); \
- if (!(gf = popen(cmd, "wb"))) { \
+ if (!(gf = popen(cmd, "w" BINARY_FILE_OPTS))) { \
fprintf(stderr, "Can't run cmd %s\n", cmd); \
exit(4); \
} \
/* macros for conversion between host and (internet) network byte order */
#ifndef WIN32
#include <netinet/in.h> /* Consts and structs defined by the internet system */
+#define BINARY_FILE_OPTS
#else
#include <winsock2.h>
+#define BINARY_FILE_OPTS "b"
#endif
/* from uClinux-x.x.x/include/linux */
*tfile = *tfile2 = '\0';
- if ((ifp = fopen(ifile, "rb")) == NULL) {
+ if ((ifp = fopen(ifile, "r" BINARY_FILE_OPTS)) == NULL) {
fprintf(stderr, "Cannot open %s\n", ifile);
return;
}
strcpy(tfile, "/tmp/flatXXXXXX");
mkstemp(tfile);
- if ((ofp = fopen(tfile, "wb")) == NULL) {
+ if ((ofp = fopen(tfile, "w" BINARY_FILE_OPTS)) == NULL) {
fprintf(stderr, "Failed to open %s for writing\n", tfile);
unlink(tfile);
unlink(tfile2);
mkstemp(tfile2);
if (old_flags & FLAT_FLAG_GZDATA) {
- tfp = fopen(tfile2, "wb");
+ tfp = fopen(tfile2, "w" BINARY_FILE_OPTS);
if (!tfp) {
fprintf(stderr, "Failed to open %s for writing\n", tfile2);
exit(1);
}
sprintf(cmd, "gunzip >> %s", tfile2);
- tfp = popen(cmd, "w");
+ tfp = popen(cmd, "w" BINARY_FILE_OPTS);
if(!tfp) {
perror("popen");
exit(1);
pclose(tfp);
fclose(ifp);
- ifp = fopen(tfile2, "rb");
+ ifp = fopen(tfile2, "r" BINARY_FILE_OPTS);
if (!ifp) {
fprintf(stderr, "Failed to open %s for reading\n", tfile2);
unlink(tfile);
printf("zflat %s --> %s\n", ifile, ofile);
fclose(ofp);
sprintf(cmd, "gzip -9 -f >> %s", tfile);
- ofp = popen(cmd, "w");
+ ofp = popen(cmd, "w" BINARY_FILE_OPTS);
ofp_is_pipe = 1;
} else if (new_flags & FLAT_FLAG_GZDATA) {
printf("zflat-data %s --> %s\n", ifile, ofile);
sizeof(struct flat_hdr));
fclose(ofp);
sprintf(cmd, "gzip -9 -f >> %s", tfile);
- ofp = popen(cmd, "w");
+ ofp = popen(cmd, "w" BINARY_FILE_OPTS);
ofp_is_pipe = 1;
}