//===- llvm/Support/Unix/PathV2.cpp - Unix Path Implementation --*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // This file implements the Unix specific implementation of the PathV2 API. // //===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===// //=== WARNING: Implementation here must contain only generic UNIX code that //=== is guaranteed to work on *all* UNIX variants. //===----------------------------------------------------------------------===// #include "Unix.h" namespace llvm { namespace sys { namespace path { error_code current_path(SmallVectorImpl &result) { long size = ::pathconf(".", _PC_PATH_MAX); result.reserve(size + 1); result.set_size(size + 1); if (::getcwd(result.data(), result.size()) == 0) return error_code(errno, system_category()); result.set_size(strlen(result.data())); return make_error_code(errc::success); } } // end namespace path } // end namespace sys } // end namespace llvm