LLVM
3.7.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
work
release_test
rc4
llvm.src
lib
Support
Unix
Unix.h
Go to the documentation of this file.
1
//===- llvm/Support/Unix/Unix.h - Common Unix Include File -------*- C++ -*-===//
2
//
3
// The LLVM Compiler Infrastructure
4
//
5
// This file is distributed under the University of Illinois Open Source
6
// License. See LICENSE.TXT for details.
7
//
8
//===----------------------------------------------------------------------===//
9
//
10
// This file defines things specific to Unix implementations.
11
//
12
//===----------------------------------------------------------------------===//
13
14
#ifndef LLVM_LIB_SUPPORT_UNIX_UNIX_H
15
#define LLVM_LIB_SUPPORT_UNIX_UNIX_H
16
17
//===----------------------------------------------------------------------===//
18
//=== WARNING: Implementation here must contain only generic UNIX code that
19
//=== is guaranteed to work on all UNIX variants.
20
//===----------------------------------------------------------------------===//
21
22
#include "llvm/Config/config.h"
// Get autoconf configuration settings
23
#include "
llvm/Support/Errno.h
"
24
#include <algorithm>
25
#include <assert.h>
26
#include <cerrno>
27
#include <cstdio>
28
#include <cstdlib>
29
#include <cstring>
30
#include <string>
31
#include <sys/types.h>
32
33
#ifdef HAVE_UNISTD_H
34
#include <unistd.h>
35
#endif
36
37
#ifdef HAVE_SYS_PARAM_H
38
#include <sys/param.h>
39
#endif
40
41
#ifdef HAVE_SYS_TIME_H
42
# include <sys/time.h>
43
#endif
44
#include <time.h>
45
46
#ifdef HAVE_SYS_WAIT_H
47
# include <sys/wait.h>
48
#endif
49
50
#ifdef HAVE_DLFCN_H
51
# include <dlfcn.h>
52
#endif
53
54
#ifndef WEXITSTATUS
55
# define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
56
#endif
57
58
#ifndef WIFEXITED
59
# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
60
#endif
61
62
/// This function builds an error message into \p ErrMsg using the \p prefix
63
/// string and the Unix error number given by \p errnum. If errnum is -1, the
64
/// default then the value of errno is used.
65
/// @brief Make an error message
66
///
67
/// If the error number can be converted to a string, it will be
68
/// separated from prefix by ": ".
69
static
inline
bool
MakeErrMsg
(
70
std::string* ErrMsg,
const
std::string& prefix,
int
errnum = -1) {
71
if
(!ErrMsg)
72
return
true
;
73
if
(errnum == -1)
74
errnum = errno;
75
*ErrMsg = prefix +
": "
+
llvm::sys::StrError
(errnum);
76
return
true
;
77
}
78
79
#endif
Errno.h
llvm::sys::StrError
std::string StrError()
Returns a string representation of the errno value, using whatever thread-safe variant of strerror() ...
Definition:
Errno.cpp:32
MakeErrMsg
static bool MakeErrMsg(std::string *ErrMsg, const std::string &prefix, int errnum=-1)
This function builds an error message into ErrMsg using the prefix string and the Unix error number g...
Definition:
Unix.h:69
Generated on Mon Aug 31 2015 11:11:11 for LLVM by
1.8.6