X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Ftmpfile.cc;h=425a21e7b730fe15c3ae73c9041a17b5dcbc8992;hb=da8d9551f1c0fd5e9381357f6253cb125f336c68;hp=a576a4a16f315a894eaeb7e63504368b91f257a1;hpb=fa5dde3af5a99cda67d0ab005393cfd1627bd3d5;p=m6w6%2Flibmemcached diff --git a/libtest/tmpfile.cc b/libtest/tmpfile.cc index a576a4a1..425a21e7 100644 --- a/libtest/tmpfile.cc +++ b/libtest/tmpfile.cc @@ -34,28 +34,37 @@ * */ -#include "config.h" +#include "libtest/yatlcon.h" + #include namespace libtest { -std::string create_tmpfile(const std::string& name) +std::string create_tmpfile(const std::string& name, int& fd) { - char file_buffer[FILENAME_MAX]; + libtest::vchar_t file_buffer; + file_buffer.resize(FILENAME_MAX); file_buffer[0]= 0; - int length= snprintf(file_buffer, sizeof(file_buffer), "var/tmp/%s.XXXXXX", name.c_str()); + int length= snprintf(&file_buffer[0], file_buffer.size(), "var/tmp/%s.XXXXXX", name.c_str()); fatal_assert(length > 0); - int fd; - if ((fd= mkstemp(file_buffer)) == -1) + if ((fd= mkstemp(&file_buffer[0])) == -1) { - throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "mkstemp() failed on %s with %s", file_buffer, strerror(errno)); + throw libtest::fatal(LIBYATL_DEFAULT_PARAM, "mkstemp() failed on %s with %s", &file_buffer[0], strerror(errno)); } + + return &file_buffer[0]; +} + +std::string create_tmpfile(const std::string& name) +{ + int fd; + std::string ret_file= create_tmpfile(name, fd); close(fd); - unlink(file_buffer); + unlink(ret_file.c_str()); - return file_buffer; + return ret_file.c_str(); } } // namespace libtest