/usr/include/ace/Lib_Find.h is in libace-dev 6.2.8+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 129 130 | // -*- C++ -*-
//=============================================================================
/**
* @file Lib_Find.h
*
* All the static function calls needed to search and open shared
* libraries.
*
* $Id: Lib_Find.h 93359 2011-02-11 11:33:12Z mcorino $
*/
//=============================================================================
#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 */
|