当前位置: 首页>>代码示例>>C++>>正文


C++ VString::preflight方法代码示例

本文整理汇总了C++中VString::preflight方法的典型用法代码示例。如果您正苦于以下问题:C++ VString::preflight方法的具体用法?C++ VString::preflight怎么用?C++ VString::preflight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VString的用法示例。


在下文中一共展示了VString::preflight方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: _platform_getExecutable

// static
VFSNode VFSNode::_platform_getExecutable() {
    const int PATH_BUFFER_SIZE = 1024;
    VString executablePath;
    executablePath.preflight(PATH_BUFFER_SIZE);
    ssize_t len = ::readlink(PROCESS_LINKPATH, executablePath.buffer(), PATH_BUFFER_SIZE - 1);
    if (len == -1) {
        throw VStackTraceException(VSystemError(), "VFSNode::_platform_getExecutable: Unable to determine executable path.");
    }

    executablePath.postflight(len);
    return VFSNode(VFSNode::normalizePath(executablePath)); // must supply normalized form to VFSNode below
}
开发者ID:JohnChristman,项目名称:code-vault,代码行数:13,代码来源:vfsnode_platform.cpp

示例2: _platform_addrinfoToIPAddressString

// static
VString VSocket::_platform_addrinfoToIPAddressString(const VString& hostName, const struct addrinfo* info) {
    void* addr;
    if (info->ai_family == AF_INET) {
        addr = (void*) &(((struct sockaddr_in*)info->ai_addr)->sin_addr);
    } else if (info->ai_family == AF_INET6) {
        addr = (void*) &(((struct sockaddr_in6*)info->ai_addr)->sin6_addr);
    } else {
        // We don't know how to access the addr for other family types. They could conceivably be added.
        throw VException(VSTRING_FORMAT("VSocket::_platform_addrinfoToIPAddressString(%s): An invalid family (%d) other than AF_INET or AF_INET6 was specified.", hostName.chars(), info->ai_family));
    }

    VString result;
    result.preflight(MAX_ADDRSTRLEN);
    const char* buf = ::inet_ntop(info->ai_family, addr, result.buffer(), MAX_ADDRSTRLEN);
    if (buf == NULL) {
        throw VException(VSystemError::getSocketError(), VSTRING_FORMAT("VSocket::_platform_addrinfoToIPAddressString(%s): inet_ntop() failed.", hostName.chars()));
    }
    result.postflight((int) ::strlen(buf));

    return result;
}
开发者ID:JohnChristman,项目名称:code-vault,代码行数:22,代码来源:vsocket_platform.cpp


注:本文中的VString::preflight方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。