X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcfileutil.c;h=52112ee3903bac053bcdffd982b34faa6e2ff128;hp=7d2d14757281af64b6f1e7ae737fa72ed1cd7fe6;hb=382d15d447b7a95390decfa783836ae4fe255b3d;hpb=3cf38201f9ffaad2da53757ed48a5546e1d03636 diff --git a/lib/silcutil/silcfileutil.c b/lib/silcutil/silcfileutil.c index 7d2d1475..52112ee3 100644 --- a/lib/silcutil/silcfileutil.c +++ b/lib/silcutil/silcfileutil.c @@ -65,8 +65,13 @@ int silc_file_writefile(const char *filename, const char *buffer, SilcUInt32 len) { int fd; + int flags = O_CREAT | O_WRONLY | O_TRUNC; - if ((fd = creat(filename, 0644)) == -1) { +#if defined(O_BINARY) + flags |= O_BINARY; +#endif /* O_BINARY */ + + if ((fd = open(filename, flags, 0644)) == -1) { SILC_LOG_ERROR(("Cannot open file %s for writing: %s", filename, strerror(errno))); return -1; @@ -90,8 +95,13 @@ int silc_file_writefile_mode(const char *filename, const char *buffer, SilcUInt32 len, int mode) { int fd; + int flags = O_CREAT | O_WRONLY | O_TRUNC; + +#if defined(O_BINARY) + flags |= O_BINARY; +#endif /* O_BINARY */ - if ((fd = creat(filename, mode)) == -1) { + if ((fd = open(filename, flags, 0644)) == -1) { SILC_LOG_ERROR(("Cannot open file %s for writing: %s", filename, strerror(errno))); return -1;