AppVeyor compiler does not proved some POSIX functions.

- `mode_t` by `int`
- `umask` by `_umask`
- `rmdir` by `_rmdir`
- `mkstemp` and `mkdtemp` by using `_mktemp`
parent b724e06c
......@@ -2,8 +2,46 @@
#include <errno.h>
#if defined(_WIN32) || defined(_WIN64)
#include <winsock.h>
#include <io.h>
#include <winsock.h>
#include <io.h>
#include <direct.h>
#include <string.h>
#include <stdlib.h>
#include <malloc.h>
typedef int mode_t;
static int
mkstemp(char *p)
{
char *template, *path;
char *path;
int fd;
template = strdup(p);
if (template == NULL) return -1;
path = _mktemp(template);
if (path[0] == 0) {
free(path);
return -1;
}
fd = _open(path, _O_CREAT|_O_BINARY|_O_RDWR|_O_TEMPORARY);
free(path);
return fd;
}
static char*
mkdtemp(char *template)
{
char *path = _mktemp(template);
if (path[0] == 0) return NULL;
if (_mkdir(path) < 0) return NULL;
return path;
}
#define umask(mode) _umask(mode)
#define rmdir(path) _rmdir(path)
#else
#include <sys/socket.h>
#include <unistd.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment