diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/kissdb/kissdb.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ext/kissdb/kissdb.c b/ext/kissdb/kissdb.c index ab33a5b3..28346a47 100644 --- a/ext/kissdb/kissdb.c +++ b/ext/kissdb/kissdb.c @@ -47,10 +47,21 @@ int KISSDB_open( uint64_t *httmp; uint64_t *hash_tables_rea; +#ifdef _WIN32 + db->f = (FILE *)0; + fopen_s(&db->f,path,((mode == KISSDB_OPEN_MODE_RWREPLACE) ? "w+b" : (((mode == KISSDB_OPEN_MODE_RDWR)||(mode == KISSDB_OPEN_MODE_RWCREAT)) ? "r+b" : "rb"))); +#else db->f = fopen(path,((mode == KISSDB_OPEN_MODE_RWREPLACE) ? "w+b" : (((mode == KISSDB_OPEN_MODE_RDWR)||(mode == KISSDB_OPEN_MODE_RWCREAT)) ? "r+b" : "rb"))); +#endif if (!db->f) { - if (mode == KISSDB_OPEN_MODE_RWCREAT) + if (mode == KISSDB_OPEN_MODE_RWCREAT) { +#ifdef _WIN32 + db->f = (FILE *)0; + fopen_s(&db->f,path,"w+b"); +#else db->f = fopen(path,"w+b"); +#endif + } if (!db->f) return KISSDB_ERROR_IO; } |
