X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Ftmpfile.cc;h=425a21e7b730fe15c3ae73c9041a17b5dcbc8992;hb=1899ec2a3d1f4f180b0109879a966fd6603ece86;hp=d2457e2bd41ca16cdbf58ea3d1540095be70b5fe;hpb=47f45992107361ad58c170bdf78fdc92523fab06;p=awesomized%2Flibmemcached diff --git a/libtest/tmpfile.cc b/libtest/tmpfile.cc index d2457e2b..425a21e7 100644 --- a/libtest/tmpfile.cc +++ b/libtest/tmpfile.cc @@ -34,27 +34,37 @@ * */ +#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