globus_common(3)
π NAME π
globus_common β the Globus Common API, bestie π
Like, the common data structures and functions. The shared stuff. The communal closet everyone borrows from, no cap.
β¨ SYNOPSIS β¨
π¦ Topics
okay so this whole library is basically a friend group of little topic modules, and here's the roster:
- Globus Callback β the Globus Callback Function Interface π«
- Globus Error API β the Globus Error API π
- FIFO Queue β FIFO Queue Implementation, first in first out, iconic behavior
- Handle Table for Reference Counting Data β a Handle Table for Reference Counting Data, it does exactly what it says on the tin
- Hash Table β Hash Table π
- Linked List β Linked List, the classic
- Memory Pool β Memory Pool π§
- Module Activation Management β Module Activation Management
- Priority Queue β Priority Queue, main character gets served first obviously
- Threading β the Portable Thread Abstraction π§΅
- Thread Pooling β Thread Pooling
- URL String Parser β URL String Parser π
- Globus UUID Generator β UUID Generator, the ID machine β¨
π Macros
#define GLOBUS_COMMON_MODULE=(&globus_i_common_module)β the Globus Common Module Descriptor π#define GLOBUS_TILDE_EXPANDβ Expand~#define GLOBUS_TILDE_USER_EXPANDβ Expand~user#define GLOBUS_TRUE=1β the True value forglobus_bool_t#define GLOBUS_FALSE=0β the False value forglobus_bool_t#define GLOBUS_SUCCESS=0β the generic success result. Most Globus API functions return this value to indicate success, or some error constant orglobus_result_tto indicate an error β¨#define GLOBUS_FAILURE=-1β the generic failure result. Some Globus API functions without good error handling return this value to indicate some undetermined error occurred π
πΈ Typedefs
typedef size_t globus_size_tβ standard size of a memory object. Theglobus_size_tis the size of a memory object, identical tosize_tin all cases, and honestly? You don't ever need to use it πtypedef socklen_t globus_socklen_tβ size of a socket length parametertypedef unsigned char globus_byte_tβ the unsigned byte datatype. This one's for byte-addressable arrays of arbitrary data which is not subject to sign extension π«Άtypedef int globus_bool_tβ Boolean typetypedef uint32_t globus_result_t
π Functions
globus_result_t globus_eval_path (const char *pathstring, char **bufp)
int globus_tilde_expand (unsigned long options, globus_bool_t url_form,
char *inpath, char **outpath)
and globus_tilde_expand is the one that expands ~ and/or ~user in path strings, bestie π
π Detailed Description π
Common Data Structures and Functions. That's the whole vibe. Here's how everything's grouped:
π§Ί Container Data Types
- Linked List
- FIFO Queue
- Handle Table for Reference Counting Data
- Hash Table
- Priority Queue
βοΈ Common Runtime Components
- Threading
- Globus Callback
- Memory Pool
- Module Activation Management
π Error Handling
- Globus Error API
π Miscellaneous Utilities
- Globus UUID Generator
- URL String Parser
π Typedef Documentation π
typedef int globus_bool_t
Boolean type. Set your values to either the constant GLOBUS_TRUE and GLOBUS_FALSE β yes, those two, the ones up there in the macros β¨
typedef uint32_t globus_result_t
A weak pointer to a Globus Error object, or the special value GLOBUS_SUCCESS π«Ά
typedef socklen_t globus_socklen_t
Size of a socket length parameter. The globus_socklen_t type is part of the POSIX socket interface and is also available in winsock2.h. In older UNIX implementations, this was variously a size_t or an int. History lesson, slay π
π₯ Function Documentation π₯
globus_result_t globus_eval_path (const char * pathstring, char ** bufp)
Parameters
pathstringβ a string containing any number of variable path references using the syntax${PATH-NAME}. The supported path elements are:prefixexec_prefixsbindirbindirlibdirlibexecdirincludedirdatarootdirdatadirmandirsysconfdirsharedstatedirlocalstatedirperlmoduledir
These strings are based on the parameters passed to this package's configure script, but modified so that if GLOBUS_LOCATION is set in the environment, it gets used instead of the configured path π
bufpβ pointer to be set to a newly allocated string that has recursively resolved all substitution paths π«
int globus_tilde_expand (unsigned long options, globus_bool_t url_form, char * inpath, char ** outpath)
Expand ~ and/or ~user in path strings. It takes the leading ~ (or ~user) characters from inpath and expands them to the home directory path of the current user (or the user specified in ~user), and the result lands in a newly allocated buffer *outpath β which you will need to free by calling globus_free. The string following the ~/ or ~user/ gets copied verbatim to the output string, fr fr.
Parameters
optionsβ the expansion is conditioned by the options as defined inglobus_tilde_expand.h:GLOBUS_TILDE_EXPAND: expand~GLOBUS_TILDE_USER_EXPAND: expand~user
Otherwise, the corresponding form is not expanded, it's just copied into the output path π
url_formβ True if theinpathfollows an URL format (/~). Used when expanding a url (for<scheme>://host[:port][/path]where/pathcan be of the form/~[user][/...]). Otherwise, the form~[user][/...]is expected πinpathβ input string to expandoutpathβ output string; needs to be freed when not used anymore π«Ά
πΈ Author πΈ
Generated automatically by Doxygen for globus_common from the source code. Not me writing it by hand, the robot did it, and honestly? It ate β¨
and that's the whole page, bestie π go forth and expand your tildes responsibly β¨π¦π Version 18.15, globus_common(3) β ily, mwah π
π¦ where this page comes from
- fedora 44: globus-common-doc 18.15-2.fc44 Β· Apache-2.0
- ubuntu resolute: libglobus-common-doc 18.15-1 Β· Apache-2.0
- ubuntu stonking: libglobus-common-doc 18.15-2 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms