tmp_dir_helpers.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 79 行

HPP
79
字号
////////////////////////////////////////////////////////////////////////////////// (C) Copyright Ion Gaztanaga 2007-2008. Distributed under the Boost// Software License, Version 1.0. (See accompanying file// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)//// See http://www.boost.org/libs/interprocess for documentation.////////////////////////////////////////////////////////////////////////////////#ifndef BOOST_INTERPROCESS_DETAIL_TMP_DIR_HELPERS_HPP#define BOOST_INTERPROCESS_DETAIL_TMP_DIR_HELPERS_HPP#include <boost/interprocess/detail/config_begin.hpp>#include <boost/interprocess/detail/workaround.hpp>#include <boost/interprocess/detail/os_file_functions.hpp>#include <boost/interprocess/errors.hpp>#include <boost/interprocess/exceptions.hpp>#include <string>namespace boost {namespace interprocess {namespace detail {inline void tmp_filename(const char *filename, std::string &tmp_name){   const char *tmp_dir = get_temporary_path();   if(!tmp_dir){      error_info err = system_error_code();      throw interprocess_exception(err);   }   tmp_name = tmp_dir;   //Remove final null.   tmp_name += "/boost_interprocess/";   tmp_name += filename;}inline void create_tmp_dir_and_get_filename(const char *filename, std::string &tmp_name){   const char *tmp_path = get_temporary_path();    if(!tmp_path){      error_info err = system_error_code();      throw interprocess_exception(err);   }   tmp_name = tmp_path;   tmp_name += "/boost_interprocess";   //Create the temporary directory.   //If fails, check that it's because already exists   if(!create_directory(tmp_name.c_str())){      error_info info(system_error_code());      if(info.get_error_code() != already_exists_error){         throw interprocess_exception(info);      }   }   //Add filename   tmp_name += '/';   tmp_name += filename;}inline void add_leading_slash(const char *name, std::string &new_name){   if(name[0] != '/'){      new_name = '/';   }   new_name += name;}}  //namespace boost {}  //namespace interprocess {}  //namespace detail {#include <boost/interprocess/detail/config_end.hpp>#endif   //ifndef BOOST_INTERPROCESS_DETAIL_TMP_DIR_HELPERS_HPP

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?