X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Ftmpfile.cc;h=425a21e7b730fe15c3ae73c9041a17b5dcbc8992;hb=6730933820b3c3f7b016b4d33a209198d195a37a;hp=a576a4a16f315a894eaeb7e63504368b91f257a1;hpb=6b04196d0ea6aa9fcd2a6c14a6cb5733c34aa2d2;p=awesomized%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