43 static int win32_open(
const char *filename_utf8,
int oflag,
int pmode)
49 if (get_extended_win32_path(filename_utf8, &filename_w))
54 fd = _wsopen(filename_w, oflag, SH_DENYNO, pmode);
57 if (fd != -1 || (oflag & O_CREAT))
62 return _sopen(filename_utf8, oflag, SH_DENYNO, pmode);
64 #define open win32_open
70 unsigned int mode = 0;
75 mode = va_arg(ap,
unsigned int);
88 if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
111 int avpriv_tempfile(
const char *prefix,
char **filename,
int log_offset,
void *log_ctx)
116 size_t len = strlen(prefix) + 12;
119 void *ptr= tempnam(
NULL, prefix);
121 ptr= tempnam(
".", prefix);
143 fd = mkstemp(*filename);
144 #if defined(_WIN32) || defined (__ANDROID__) || defined(__DJGPP__)
147 fd = mkstemp(*filename);
154 av_log(&file_log_ctx,
AV_LOG_ERROR,
"ff_tempfile: Cannot open temporary file %s\n", *filename);
165 const char *m =
mode;
168 case 'r': access = O_RDONLY;
break;
169 case 'w': access = O_CREAT|O_WRONLY|O_TRUNC;
break;
170 case 'a': access = O_CREAT|O_WRONLY|O_APPEND;
break;
177 access &= ~(O_RDONLY | O_WRONLY);
179 }
else if (*m ==
'b') {
192 return fdopen(fd,
mode);