diff --git a/tools/widl/write_msft.c b/tools/widl/write_msft.c index 51227bf9dd0..4e7edf3a150 100644 --- a/tools/widl/write_msft.c +++ b/tools/widl/write_msft.c @@ -2418,7 +2418,7 @@ static int save_all_changes(msft_typelib_t *typelib) retval = TYPE_E_IOERROR; - fd = creat(typelib->typelib->filename, 0666); + fd = open(typelib->typelib->filename, O_CREAT | O_WRONLY | O_TRUNC | O_BINARY, 0666); if (fd == -1) return retval; filepos = sizeof(MSFT_Header) + sizeof(MSFT_SegDir);