TemporaryFile.cpp 537 B

123456789101112131415161718192021222324252627282930313233
  1. #include "TemporaryFile.h"
  2. #include <fcntl.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. namespace AK {
  6. TemporaryFile::TemporaryFile()
  7. {
  8. char nameBuffer[] = "/tmp/AKTemporaryFile.XXXXXX";
  9. int fd = mkstemp(nameBuffer);
  10. if (fd != -1) {
  11. m_stream = fdopen(fd, "w+");
  12. m_file_name = nameBuffer;
  13. }
  14. }
  15. TemporaryFile::~TemporaryFile()
  16. {
  17. if (is_valid()) {
  18. unlink(m_file_name.characters());
  19. fclose(m_stream);
  20. }
  21. }
  22. void TemporaryFile::sync()
  23. {
  24. if (m_stream)
  25. fflush(m_stream);
  26. }
  27. }