diff options
author | Eric Engestrom <eric.engestrom@intel.com> | 2019-06-03 17:51:37 +0100 |
---|---|---|
committer | Eric Engestrom <eric.engestrom@intel.com> | 2019-06-28 23:37:49 +0100 |
commit | 1b259f1ae798099de280dd0ee10018d1fd54be04 (patch) | |
tree | 60c81faad0c84205836ebb974c5b07a3acc64a76 /src/util/os_file.c | |
parent | 9de4325b27934f0ad944b78e9200cd09d8d8cd14 (diff) | |
download | mesa-1b259f1ae798099de280dd0ee10018d1fd54be04.tar.gz mesa-1b259f1ae798099de280dd0ee10018d1fd54be04.tar.bz2 mesa-1b259f1ae798099de280dd0ee10018d1fd54be04.zip |
util: add os_file_create_unique()
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Diffstat (limited to 'src/util/os_file.c')
-rw-r--r-- | src/util/os_file.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/util/os_file.c b/src/util/os_file.c index 756164c3dfe..ae41506332d 100644 --- a/src/util/os_file.c +++ b/src/util/os_file.c @@ -6,7 +6,30 @@ #include "os_file.h" #include <errno.h> +#include <fcntl.h> #include <stdlib.h> +#include <sys/stat.h> + + +#if defined(WIN32) +#include <io.h> +#define open _open +#define fdopen _fdopen +#define O_CREAT _O_CREAT +#define O_EXCL _O_EXCL +#define O_WRONLY _O_WRONLY +#endif + + +FILE * +os_file_create_unique(const char *filename, int filemode) +{ + int fd = open(filename, O_CREAT | O_EXCL | O_WRONLY, filemode); + if (fd == -1) + return NULL; + return fdopen(fd, "w"); +} + #if defined(__linux__) |