Mercurial > libavcodec.hg
comparison utils.c @ 5284:b481b3e3f43d libavcodec
Proper check for mkstemp().
| author | ramiro |
|---|---|
| date | Wed, 11 Jul 2007 13:57:22 +0000 |
| parents | c94c4aa7d25f |
| children | 6661692d34b4 |
comparison
equal
deleted
inserted
replaced
| 5283:35e847940db4 | 5284:b481b3e3f43d |
|---|---|
| 32 #include "opt.h" | 32 #include "opt.h" |
| 33 #include "crc.h" | 33 #include "crc.h" |
| 34 #include <stdarg.h> | 34 #include <stdarg.h> |
| 35 #include <limits.h> | 35 #include <limits.h> |
| 36 #include <float.h> | 36 #include <float.h> |
| 37 #ifdef __MINGW32__ | 37 #if !defined(HAVE_MKSTEMP) |
| 38 #include <fcntl.h> | 38 #include <fcntl.h> |
| 39 #endif | 39 #endif |
| 40 | 40 |
| 41 const uint8_t ff_reverse[256]={ | 41 const uint8_t ff_reverse[256]={ |
| 42 0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0, | 42 0x00,0x80,0x40,0xC0,0x20,0xA0,0x60,0xE0,0x10,0x90,0x50,0xD0,0x30,0xB0,0x70,0xF0, |
| 1331 * *prefix can be a character constant; *filename will be allocated internally. | 1331 * *prefix can be a character constant; *filename will be allocated internally. |
| 1332 * Returns file descriptor of opened file (or -1 on error) | 1332 * Returns file descriptor of opened file (or -1 on error) |
| 1333 * and opened file name in **filename. */ | 1333 * and opened file name in **filename. */ |
| 1334 int av_tempfile(char *prefix, char **filename) { | 1334 int av_tempfile(char *prefix, char **filename) { |
| 1335 int fd=-1; | 1335 int fd=-1; |
| 1336 #ifdef __MINGW32__ | 1336 #if !defined(HAVE_MKSTEMP) |
| 1337 *filename = tempnam(".", prefix); | 1337 *filename = tempnam(".", prefix); |
| 1338 #else | 1338 #else |
| 1339 size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */ | 1339 size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */ |
| 1340 *filename = av_malloc(len); | 1340 *filename = av_malloc(len); |
| 1341 #endif | 1341 #endif |
| 1342 /* -----common section-----*/ | 1342 /* -----common section-----*/ |
| 1343 if (*filename == NULL) { | 1343 if (*filename == NULL) { |
| 1344 av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n"); | 1344 av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n"); |
| 1345 return -1; | 1345 return -1; |
| 1346 } | 1346 } |
| 1347 #ifdef __MINGW32__ | 1347 #if !defined(HAVE_MKSTEMP) |
| 1348 fd = open(*filename, _O_RDWR | _O_BINARY | _O_CREAT, 0444); | 1348 fd = open(*filename, _O_RDWR | _O_BINARY | _O_CREAT, 0444); |
| 1349 #else | 1349 #else |
| 1350 snprintf(*filename, len, "/tmp/%sXXXXXX", prefix); | 1350 snprintf(*filename, len, "/tmp/%sXXXXXX", prefix); |
| 1351 fd = mkstemp(*filename); | 1351 fd = mkstemp(*filename); |
| 1352 if (fd < 0) { | 1352 if (fd < 0) { |
