⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 current_directory.hpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 HPP
字号:
/* * 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/iostreams for documentation. * File:        boost/iostreams/detail/execute.hpp * Date:        Thu Dec 06 13:21:54 MST 2007 * Copyright:   2007-2008 CodeRage, LLC * Author:      Jonathan Turkanis * Contact:     turkanis at coderage dot com * * Defines the function boost::iostreams::detail::current_directory, used by  * boost::iostreams::detail::absolute_path. */#ifndef BOOST_IOSTREAMS_DETAIL_CURRENT_DIRECTORY_HPP_INCLUDED#define BOOST_IOSTREAMS_DETAIL_CURRENT_DIRECTORY_HPP_INCLUDED#include <boost/config.hpp>  // make sure size_t is in std.#include <cstddef>           // size_t#include <string>#include <boost/iostreams/detail/buffer.hpp>#include <boost/iostreams/detail/config/windows_posix.hpp>#include <boost/iostreams/detail/system_failure.hpp>#ifdef BOOST_IOSTREAMS_WINDOWS# define WIN32_LEAN_AND_MEAN  // Exclude rarely-used stuff from Windows headers# include <windows.h>#else# include <unistd.h>        // sysconf.#endifnamespace boost { namespace iostreams { namespace detail {// Returns the current working directoryinline std::string current_directory(){#ifdef BOOST_IOSTREAMS_WINDOWS    DWORD               length;    basic_buffer<char>  buf(MAX_PATH);    while (true) {        length = ::GetCurrentDirectoryA(buf.size(), buf.data());        if (!length)            throw_system_failure("failed determining current directory");        if (length < static_cast<DWORD>(buf.size()))            break;        buf.resize(buf.size() * 2);    }    return std::string(buf.data(), length);#else // #ifdef BOOST_IOSTREAMS_WINDOWS    basic_buffer<char> buf(pathconf(".", _PC_PATH_MAX));    if (!getcwd(buf.data(), static_cast<size_t>(buf.size())))        throw_system_failure("failed determining current directory");    return std::string(buf.data());#endif // #ifdef BOOST_IOSTREAMS_WINDOWS}} } } // End namespaces detail, iostreams, boost.#endif // #ifndef BOOST_IOSTREAMS_DETAIL_CURRENT_DIRECTORY_HPP_INCLUDED

⌨️ 快捷键说明

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