/usr/include/ace/Lib_Find.h is in libace-dev 6.3.3+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | // -*- C++ -*-
//=============================================================================
/**
* @file Lib_Find.h
*
* All the static function calls needed to search and open shared
* libraries.
*/
//=============================================================================
#ifndef ACE_LIB_FIND_H
#define ACE_LIB_FIND_H
#include /**/ "ace/pre.h"
#include /**/ "ace/config-all.h"
#include /**/ "ace/ACE_export.h"
#include "ace/os_include/os_stdio.h"
#if defined (ACE_OPENVMS)
# include "ace/OS_NS_dlfcn.h"
#endif
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
namespace ACE
{
// = Methods for searching and opening shared libraries.
/**
* Finds the file @a filename either using an absolute path or using
* a relative path in conjunction with ACE_LD_SEARCH_PATH (e.g.,
* $LD_LIBRARY_PATH on UNIX or the directories scaned by Win32 API
* SearchPath on Win32). This function will add appropriate suffix
* (e.g., .dll on Win32 or .so on UNIX) according to the OS
* platform. In addition, this function will apply the appropriate
* prefix (e.g., "lib" on UNIX and "" on Win32) if the @a filename
* doesn't match directly.
*/
extern ACE_Export int ldfind (const ACE_TCHAR* filename,
ACE_TCHAR pathname[],
size_t maxpathnamelen);
/**
* Uses @c ldfind to locate and open the appropriate @a filename and
* returns a pointer to the file, else it returns a NULL
* pointer. @a type specifies how the file should be open.
*/
extern ACE_Export FILE *ldopen (const ACE_TCHAR *filename,
const ACE_TCHAR *type);
/**
* Transforms @a entry_point into a form that can be located in a
* dynamic library using <dlsym>. For example, with Win32/Borland
* extern "C" functions which use the default calling convention
* have a '_' prepended. Always returns a buffer that has been
* dynamically allocated using <operator new>.
*/
extern ACE_Export ACE_TCHAR *ldname (const ACE_TCHAR *entry_point);
#if defined (ACE_OPENVMS)
/**
* Registers an @a entry_point and its address for later retrieval
* through the ACE::ldsymbol () method.
* For use in cases where the OS compiler encodes long symbolnames.
*/
extern ACE_Export void ldregister (const ACE_TCHAR *entry_point,
void* entry_addr);
/**
* Looks up an @a entry_point address either from previously registered
* symbols or through ACE_OS::dlsym ().
* Returns 0 in case the entry_point is not found, otherwise nonzero.
* For use in cases where the OS compiler encodes long symbolnames.
*/
extern ACE_Export void *ldsymbol (ACE_SHLIB_HANDLE sh,
const ACE_TCHAR *entry_point);
#endif
/**
* Returns the temporary directory including the trailing slash in
* @a buffer. Returns -1 for an error or if the buffer_len is not
* long enough.
*/
extern ACE_Export int get_temp_dir (ACE_TCHAR *buffer, size_t buffer_len);
/// Opening the temp file. File is automagically unlinked when it is
/// closed. This is useful for have temp files.
extern ACE_Export ACE_HANDLE open_temp_file (const ACE_TCHAR *name,
int mode,
int perm = 0);
// @@ Though the following functions dont come under the same category as
// above, these are used only in the functions in this class. So it makes
// more sense to move these functions too to this class.
//
/// Replace all instances of @a search in @a s with @a replace. Returns
/// the number of replacements made.
extern ACE_Export size_t strrepl (char *s, char search, char replace);
/**
* Splits string @a s into pieces separated by the string @a token.
* @a next_start is an opaque cookie handed back by the call to store
* its state for the next invocation, thus making it re-entrant.
* This operates very similar to Perl's @c split function except that
* it returns pieces one at a time instead of into an array.
*/
extern ACE_Export char *strsplit_r (char *s,
const char *token,
char *&next_start);
#if defined (ACE_HAS_WCHAR)
/// As strrepl, but for wide characters.
extern ACE_Export size_t strrepl (wchar_t *s,
wchar_t search,
wchar_t replace);
/// As strsplit_r, but for wide characters.
extern ACE_Export wchar_t *strsplit_r (wchar_t *s,
const wchar_t *token,
wchar_t *&next_start);
#endif /* ACE_HAS_WCHAR */
}
ACE_END_VERSIONED_NAMESPACE_DECL
#include /**/ "ace/post.h"
#endif /* ACE_LIB_FIND_H */
|