glib.global
Global functions for glib2 library
fn access alignedAlloc alignedAlloc0 alignedFree alignedFreeSized asciiDigitValue asciiDtostr asciiFormatd asciiStrcasecmp asciiStrdown asciiStringToSigned asciiStringToUnsigned asciiStrncasecmp asciiStrtod asciiStrtoll asciiStrtoull asciiStrup asciiTolower asciiToupper asciiXdigitValue assertionMessage assertionMessageCmpint assertionMessageCmpstr assertionMessageCmpstrv assertionMessageError assertWarning atomicIntAdd atomicIntAnd atomicIntCompareAndExchange atomicIntCompareAndExchangeFull atomicIntDecAndTest atomicIntExchange atomicIntExchangeAndAdd atomicIntGet atomicIntInc atomicIntOr atomicIntSet atomicIntXor atomicPointerAdd atomicPointerAnd atomicPointerCompareAndExchange atomicPointerCompareAndExchangeFull atomicPointerExchange atomicPointerGet atomicPointerOr atomicPointerSet atomicPointerXor atomicRcBoxAcquire atomicRcBoxAlloc atomicRcBoxAlloc0 atomicRcBoxDup atomicRcBoxGetSize atomicRcBoxRelease atomicRcBoxReleaseFull atomicRefCountCompare atomicRefCountDec atomicRefCountInc atomicRefCountInit base64Decode base64Encode basename bitLock bitNthLsf bitNthMsf bitStorage bitTrylock bitUnlock blowChunks buildFilenamev buildPathv canonicalizeFilename chdir checkVersion childWatchAdd childWatchSourceNew chmod clearError close closefrom computeChecksumForBytes computeChecksumForData computeChecksumForString computeHmacForBytes computeHmacForData computeHmacForString convert convertErrorQuark convertWithFallback creat datasetDestroy datasetForeach datasetIdGetData dcgettext dgettext directEqual directHash dngettext doubleEqual doubleHash dpgettext dpgettext2 environGetenv fdwalkSetCloexec fileErrorFromErrno fileErrorQuark fileGetContents filenameDisplayBasename filenameDisplayName filenameFromUri filenameFromUtf8 filenameToUri filenameToUtf8 fileOpenTmp fileReadLink fileSetContents fileSetContentsFull fileTest findProgramInPath fopen formatSize formatSizeForDisplay formatSizeFull freeSized freopen fsync getApplicationName getCharset getCodeset getConsoleCharset getCurrentDir getCurrentTime getenv getEnviron getFilenameCharsets getHomeDir getHostName getLanguageNames getLanguageNamesWithCategory getLocaleVariants getMonotonicTime getNumProcessors getOsInfo getPrgname getRealName getRealTime getSystemConfigDirs getSystemDataDirs getTmpDir getUserCacheDir getUserConfigDir getUserDataDir getUserName getUserRuntimeDir getUserSpecialDir getUserStateDir gfree gmalloc hostnameIsAsciiEncoded hostnameIsIpAddress hostnameIsNonAscii hostnameToAscii hostnameToUnicode idleAdd idleRemoveByData idleSourceNew int64Equal int64Hash intEqual internStaticString internString intHash ioAddWatch ioCreateWatch listenv localeFromUtf8 localeToUtf8 logDefaultHandler logGetDebugEnabled logRemoveHandler logSetAlwaysFatal logSetDebugEnabled logSetFatalMask logSetHandler logVariant logWriterDefaultSetDebugDomains logWriterDefaultSetUseStderr logWriterDefaultWouldDrop logWriterIsJournald logWriterSupportsColor lstat mainCurrentSource mainDepth malloc0 malloc0N mallocN markupErrorQuark markupEscapeText memdup memdup2 memIsSystemMalloc memProfile memSetVtable mkdir mkdirWithParents nullifyPointer numberParserErrorQuark onErrorQuery onErrorStackTrace open optionErrorQuark pathGetBasename pathGetDirname pathIsAbsolute pathSkipRoot patternMatchSimple pointerBitLock pointerBitLockAndGet pointerBitLockMaskPtr pointerBitTrylock pointerBitUnlock pointerBitUnlockAndSet poll propagateError qsortWithData quarkFromStaticString quarkFromString quarkToString quarkTryString randomDouble randomDoubleRange randomInt randomIntRange randomSetSeed rcBoxAcquire rcBoxAlloc rcBoxAlloc0 rcBoxDup rcBoxGetSize rcBoxRelease rcBoxReleaseFull realloc reallocN refCountCompare refCountDec refCountInc refCountInit refStringAcquire refStringLength refStringNew refStringNewIntern refStringNewLen refStringRelease reloadUserSpecialDirsCache remove rename rmdir setApplicationName setenv setErrorLiteral setPrgname shellErrorQuark shellParseArgv shellQuote shellUnquote sliceAlloc sliceAlloc0 sliceCopy sliceFree1 sliceFreeChainWithOffset sliceGetConfig sliceGetConfigState sliceSetConfig spacedPrimesClosest spawnAsync spawnAsyncWithFds spawnAsyncWithPipes spawnAsyncWithPipesAndFds spawnCheckExitStatus spawnCheckWaitStatus spawnClosePid spawnCommandLineAsync spawnCommandLineSync spawnErrorQuark spawnExitErrorQuark spawnSync stat stpcpy strcanon strcasecmp strchomp strchug strcmp0 strcompress strdelimit strdown strdup strdupv strEqual strerror strescape strHash strHasPrefix strHasSuffix stripContext strIsAscii strjoinv strMatchString strncasecmp strndup strnfill strreverse strrstr strsignal strsplit strsplitSet strToAscii strtod strTokenizeAndFold strup strvContains strvEqual strvGetType strvLength testAddDataFunc testAssertExpectedMessagesInternal testBug testBugBase testDisableCrashReporting testExpectMessage testFail testFailed testGetDir testGetPath testIncomplete testLogTypeName testQueueFree testRandDouble testRandDoubleRange testRandInt testRandIntRange testRun testRunSuite testSetNonfatalAssertions testSkip testSubprocess testSummary testTimerElapsed testTimerLast testTimerStart testTrapAssertions testTrapFork testTrapHasPassed testTrapReachedTimeout testTrapSubprocess testTrapSubprocessWithEnvp timeoutAdd timeoutAddSeconds timeoutSourceNew timeoutSourceNewSeconds tryMalloc tryMalloc0 tryMalloc0N tryMallocN tryRealloc tryReallocN ucs4ToUtf16 ucs4ToUtf8 unicharBreakType unicharCombiningClass unicharCompose unicharDecompose unicharDigitValue unicharFullyDecompose unicharGetMirrorChar unicharGetScript unicharIsalnum unicharIsalpha unicharIscntrl unicharIsdefined unicharIsdigit unicharIsgraph unicharIslower unicharIsmark unicharIsprint unicharIspunct unicharIsspace unicharIstitle unicharIsupper unicharIswide unicharIswideCjk unicharIsxdigit unicharIszerowidth unicharTolower unicharTotitle unicharToupper unicharType unicharValidate unicharXdigitValue unicodeCanonicalDecomposition unicodeCanonicalOrdering unixErrorQuark unixFdAddFull unixFdSourceNew unixGetPasswdEntry unixOpenPipe unixSetFdNonblocking unixSignalAdd unixSignalSourceNew unlink unsetenv usleep utf16ToUcs4 utf16ToUtf8 utf8Casefold utf8Collate utf8CollateKey utf8CollateKeyForFilename utf8FindNextChar utf8FindPrevChar utf8GetChar utf8GetCharValidated utf8MakeValid utf8Normalize utf8OffsetToPointer utf8PointerToOffset utf8PrevChar utf8Strchr utf8Strdown utf8Strlen utf8Strncpy utf8Strrchr utf8Strreverse utf8Strup utf8Substring utf8ToUcs4 utf8ToUcs4Fast utf8ToUtf16 utf8TruncateMiddle utf8Validate utf8ValidateLen uuidStringIsValid uuidStringRandom variantGetGtype
Functions 443
fn
int access(string filename, int mode)A wrapper for the POSIX access() function. This function is used to test a pathname for one or several of read, write or execute permissions, or just existence.fn
void * alignedAlloc(size_t nBlocks, size_t nBlockBytes, size_t alignment)This function is similar to [glib.global.gmalloc], allocating (nblocks * nblock_bytes) bytes, but care is taken to align the allocated memory to with the given alignment value. Additionally, it wil...fn
void * alignedAlloc0(size_t nBlocks, size_t nBlockBytes, size_t alignment)This function is similar to [glib.global.alignedAlloc], but it will also clear the allocated memory before returning it.fn
void alignedFreeSized(void * mem, size_t alignment, size_t size)Frees the memory pointed to by mem, assuming it is has the given size and alignment.fn
int asciiDigitValue(char c)Determines the numeric value of a character as a decimal digit. If the character is not a decimal digit according to `funcGLib.ascii_isdigit`, `-1` is returned.fn
void asciiDtostr(ref char[] buffer, double d)Converts a `gdouble` to a string, using the '.' as decimal point.fn
void asciiFormatd(ref char[] buffer, string format, double d)Converts a `gdouble` to a string, using the '.' as decimal point. To format the number you pass in a `printf()`-style format string. Allowed conversion specifiers are 'e', 'E', 'f', 'F', 'g' and 'G'.fn
int asciiStrcasecmp(string s1, string s2)Compare two strings, ignoring the case of ASCII characters.fn
string asciiStrdown(string str)Converts all upper case ASCII letters to lower case ASCII letters, with semantics that exactly match `funcGLib.ascii_tolower`.fn
bool asciiStringToSigned(string str, uint base, long min, long max, out long outNum)A convenience function for converting a string to a signed number.fn
bool asciiStringToUnsigned(string str, uint base, ulong min, ulong max, out ulong outNum)A convenience function for converting a string to an unsigned number.fn
int asciiStrncasecmp(string s1, string s2, size_t n)Compare s1 and s2, ignoring the case of ASCII characters and any characters after the first `n` in each string. If either string is less than `n` bytes long, comparison will stop at the first nul b...fn
long asciiStrtoll(string nptr, out string endptr, uint base)Converts a string to a [gst.types.long] value.fn
ulong asciiStrtoull(string nptr, out string endptr, uint base)Converts a string to a [gst.types.ulong] value.fn
string asciiStrup(string str)Converts all lower case ASCII letters to upper case ASCII letters, with semantics that exactly match `funcGLib.ascii_toupper`.fn
char asciiTolower(char c)Convert a character to ASCII lower case. If the character is not an ASCII upper case letter, it is returned unchanged.fn
char asciiToupper(char c)Convert a character to ASCII upper case. If the character is not an ASCII lower case letter, it is returned unchanged.fn
int asciiXdigitValue(char c)Determines the numeric value of a character as a hexadecimal digit. If the character is not a hex digit according to `funcGLib.ascii_isxdigit`, `-1` is returned.fn
void assertWarning(string logDomain, string file, int line, string prettyFunction, string expression)fn
void assertionMessage(string domain, string file, int line, string func, string message)fn
void assertionMessageCmpint(string domain, string file, int line, string func, string expr, ulong arg1, string cmp, ulong arg2, char numtype)fn
void assertionMessageCmpstr(string domain, string file, int line, string func, string expr, string arg1, string cmp, string arg2)fn
void assertionMessageCmpstrv(string domain, string file, int line, string func, string expr, string[] arg1, string[] arg2, size_t firstWrongIdx)fn
void assertionMessageError(string domain, string file, int line, string func, string expr, glib.error.ErrorWrap error, glib.types.Quark errorDomain, int errorCode)fn
uint atomicIntAnd(ref uint atomic, uint val)Performs an atomic bitwise 'and' of the value of atomic and val, storing the result back in atomic.fn
bool atomicIntCompareAndExchange(ref int atomic, int oldval, int newval)Compares atomic to oldval and, if equal, sets it to newval. If atomic was not equal to oldval then no change occurs.fn
bool atomicIntCompareAndExchangeFull(ref int atomic, int oldval, int newval, out int preval)Compares atomic to oldval and, if equal, sets it to newval. If atomic was not equal to oldval then no change occurs. In any case the value of atomic before this operation is stored in preval.fn
int atomicIntExchange(ref int atomic, int newval)Sets the atomic to newval and returns the old value from atomic.fn
int atomicIntExchangeAndAdd(ref int atomic, int val)This function existed before [glib.global.atomicIntAdd] returned the prior value of the integer (which it now does). It is retained only for compatibility reasons. Don't use this function in new ...fn
uint atomicIntOr(ref uint atomic, uint val)Performs an atomic bitwise 'or' of the value of atomic and val, storing the result back in atomic.fn
uint atomicIntXor(ref uint atomic, uint val)Performs an atomic bitwise 'xor' of the value of atomic and val, storing the result back in atomic.fn
ptrdiff_t atomicPointerAdd(void * atomic, ptrdiff_t val)Atomically adds val to the value of atomic.fn
size_t atomicPointerAnd(void * atomic, size_t val)Performs an atomic bitwise 'and' of the value of atomic and val, storing the result back in atomic.fn
bool atomicPointerCompareAndExchange(void * atomic, void * oldval = null, void * newval = null)Compares atomic to oldval and, if equal, sets it to newval. If atomic was not equal to oldval then no change occurs.fn
bool atomicPointerCompareAndExchangeFull(void * atomic, void * oldval, void * newval, out void * preval)Compares atomic to oldval and, if equal, sets it to newval. If atomic was not equal to oldval then no change occurs. In any case the value of atomic before this operation is stored in preval.fn
void * atomicPointerExchange(void * atomic = null, void * newval = null)Sets the atomic to newval and returns the old value from atomic.fn
size_t atomicPointerOr(void * atomic, size_t val)Performs an atomic bitwise 'or' of the value of atomic and val, storing the result back in atomic.fn
size_t atomicPointerXor(void * atomic, size_t val)Performs an atomic bitwise 'xor' of the value of atomic and val, storing the result back in atomic.fn
void * atomicRcBoxAcquire(void * memBlock)Atomically acquires a reference on the data pointed by mem_block.fn
void * atomicRcBoxAlloc(size_t blockSize)Allocates block_size bytes of memory, and adds atomic reference counting semantics to it.fn
void * atomicRcBoxAlloc0(size_t blockSize)Allocates block_size bytes of memory, and adds atomic reference counting semantics to it.fn
void * atomicRcBoxDup(size_t blockSize, const(void) * memBlock)Allocates a new block of data with atomic reference counting semantics, and copies blocksize bytes of memblock into it.fn
size_t atomicRcBoxGetSize(void * memBlock)Retrieves the size of the reference counted data pointed by mem_block.fn
void atomicRcBoxRelease(void * memBlock)Atomically releases a reference on the data pointed by mem_block.fn
void atomicRcBoxReleaseFull(void * memBlock, glib.types.DestroyNotify clearFunc)Atomically releases a reference on the data pointed by mem_block.fn
bool atomicRefCountCompare(ref int arc, int val)Atomically compares the current value of arc with val.fn
ubyte[] base64Decode(string text)Decode a sequence of Base-64 encoded text into binary data. Note that the returned binary data is not necessarily zero-terminated, so it should not be used as a character string.fn
string base64Encode(ubyte[] data = null)Encode a sequence of binary data into its Base-64 stringified representation.fn
string basename(string fileName)Gets the name of the file without any leading directory components. It returns a pointer into the given file name string.fn
void bitLock(ref int address, int lockBit)Sets the indicated lock_bit in address. If the bit is already set, this call will block until [glib.global.bitUnlock] unsets the corresponding bit.fn
int bitNthLsf(gulong mask, int nthBit)Find the position of the first bit set in mask, searching from (but not including) nthbit upwards. Bits are numbered from 0 (least significant) to sizeof(#gulong) * 8 - 1 (31 or 63, usually). To st...fn
int bitNthMsf(gulong mask, int nthBit)Find the position of the first bit set in mask, searching from (but not including) nthbit downwards. Bits are numbered from 0 (least significant) to sizeof(#gulong) 8 - 1 (31 or 63, usually). To s...fn
uint bitStorage(gulong number)Gets the number of bits used to hold number, e.g. if number is 4, 3 bits are needed.fn
bool bitTrylock(ref int address, int lockBit)Sets the indicated lock_bit in address, returning true if successful. If the bit is already set, returns false immediately.fn
void bitUnlock(ref int address, int lockBit)Clears the indicated lock_bit in address. If another thread is currently blocked in [glib.global.bitLock] on this same bit then it will be woken up.fn
void blowChunks()fn
string buildFilenamev(string[] args)Creates a filename from a vector of elements using the correct separator for the current platform.fn
string buildPathv(string separator, string[] args)Behaves exactly like [glib.global.buildPath], but takes the path elements as a string array, instead of variadic arguments.fn
string canonicalizeFilename(string filename, string relativeTo = null)Gets the canonical file name from filename. All triple slashes are turned into single slashes, and all `..` and `.`s resolved against relative_to.fn
int chdir(string path)A wrapper for the POSIX chdir() function. The function changes the current directory of the process to path.fn
string checkVersion(uint requiredMajor, uint requiredMinor, uint requiredMicro)Checks that the GLib library in use is compatible with the given version.fn
uint childWatchAdd(int priority, glib.types.Pid pid, glib.types.ChildWatchFunc function_)Sets a function to be called when the child indicated by pid exits, at the priority priority.fn
int chmod(string filename, int mode)A wrapper for the POSIX chmod() function. The chmod() function is used to set the permissions of a file system object.fn
void clearError()If err or err is null, does nothing. Otherwise, calls [glib.error.ErrorWrap.free] on err and sets *err to null. Throws: [ErrorWrap]fn
bool close(int fd)This wraps the close() call. In case of error, `errno` will be preserved, but the error will also be stored as a #GError in error. In case of success, `errno` is undefined.fn
string computeChecksumForBytes(glib.types.ChecksumType checksumType, glib.bytes.Bytes data)Computes the checksum for a binary data. This is a convenience wrapper for [glib.checksum.Checksum.new_], [glib.checksum.Checksum.getString] and [glib.checksum.Checksum.free].fn
string computeChecksumForData(glib.types.ChecksumType checksumType, ubyte[] data)Computes the checksum for a binary data of length. This is a convenience wrapper for [glib.checksum.Checksum.new_], [glib.checksum.Checksum.getString] and [glib.checksum.Checksum.free].fn
string computeChecksumForString(glib.types.ChecksumType checksumType, string str)Computes the checksum of a string.fn
string computeHmacForBytes(glib.types.ChecksumType digestType, glib.bytes.Bytes key, glib.bytes.Bytes data)Computes the HMAC for a binary data. This is a convenience wrapper for [glib.hmac.Hmac.new_], [glib.hmac.Hmac.getString] and [glib.hmac.Hmac.unref].fn
string computeHmacForData(glib.types.ChecksumType digestType, ubyte[] key, ubyte[] data)Computes the HMAC for a binary data of length. This is a convenience wrapper for [glib.hmac.Hmac.new_], [glib.hmac.Hmac.getString] and [glib.hmac.Hmac.unref].fn
string computeHmacForString(glib.types.ChecksumType digestType, ubyte[] key, string str)Computes the HMAC for a string.fn
ubyte[] convert(ubyte[] str, string toCodeset, string fromCodeset, out size_t bytesRead)Converts a string from one character set to another.fn
ubyte[] convertWithFallback(ubyte[] str, string toCodeset, string fromCodeset, string fallback, out size_t bytesRead)Converts a string from one character set to another, possibly including fallback sequences for characters not representable in the output. Note that it is not guaranteed that the specification for ...fn
int creat(string filename, int mode)A wrapper for the POSIX creat() function. The creat() function is used to convert a pathname into a file descriptor, creating a file if necessary.fn
void datasetDestroy(const(void) * datasetLocation)Destroys the dataset, freeing all memory allocated, and calling any destroy functions set for data elements.fn
void datasetForeach(const(void) * datasetLocation, glib.types.DataForeachFunc func)Calls the given function for each data element which is associated with the given location. Note that this function is NOT thread-safe. So unless dataset_location can be protected from any modifica...fn
void * datasetIdGetData(const(void) * datasetLocation, glib.types.Quark keyId)Gets the data element corresponding to a #GQuark.fn
string dcgettext(string domain, string msgid, int category)This is a variant of [glib.global.dgettext] that allows specifying a locale category instead of always using `LC_MESSAGES`. See [glib.global.dgettext] for more information about how this functions ...fn
string dgettext(string domain, string msgid)This function is a wrapper of dgettext() which does not translate the message if the default domain as set with textdomain() has no translations for the current locale.fn
bool directEqual(const(void) * v1 = null, const(void) * v2 = null)Compares two #gpointer arguments and returns true if they are equal. It can be passed to [glib.hashtable.HashTable.new] as the keyequalfunc parameter, when using opaque pointers compared by pointer...fn
uint directHash(const(void) * v = null)Converts a gpointer to a hash value. It can be passed to [glib.hashtable.HashTable.new] as the hash_func parameter, when using opaque pointers compared by pointer value as keys in a #GHashTable.fn
string dngettext(string domain, string msgid, string msgidPlural, gulong n)This function is a wrapper of dngettext() which does not translate the message if the default domain as set with textdomain() has no translations for the current locale.fn
bool doubleEqual(const(void) * v1, const(void) * v2)Compares the two #gdouble values being pointed to and returns true if they are equal. It can be passed to [glib.hashtable.HashTable.new] as the keyequalfunc parameter, when using non-null pointers ...fn
uint doubleHash(const(void) * v)Converts a pointer to a #gdouble to a hash value. It can be passed to [glib.hashtable.HashTable.new] as the hashfunc parameter, It can be passed to [glib.hashtable.HashTable.new] as the hashfunc pa...fn
string dpgettext(string domain, string msgctxtid, size_t msgidoffset)This function is a variant of [glib.global.dgettext] which supports a disambiguating message context. GNU gettext uses the '\004' character to separate the message context and message id in msgctxt...fn
string dpgettext2(string domain, string context, string msgid)This function is a variant of [glib.global.dgettext] which supports a disambiguating message context. GNU gettext uses the '\004' character to separate the message context and message id in msgctxtid.fn
string environGetenv(string[] envp, string variable)Returns the value of the environment variable variable in the provided list envp.fn
int fdwalkSetCloexec(int lowfd)Mark every file descriptor equal to or greater than lowfd to be closed at the next `execve()` or similar, as if via the `FD_CLOEXEC` flag.fn
glib.types.FileError fileErrorFromErrno(int errNo)Gets a #GFileError constant based on the passed-in err_no.fn
bool fileGetContents(string filename, out ubyte[] contents)Reads an entire file into allocated memory, with good error checking.fn
int fileOpenTmp(string tmpl, out string nameUsed)Opens a file for writing in the preferred directory for temporary files (as returned by [glib.global.getTmpDir]).fn
string fileReadLink(string filename)Reads the contents of the symbolic link filename like the POSIX `readlink()` function.fn
bool fileSetContents(string filename, ubyte[] contents)Writes all of contents to a file named filename. This is a convenience wrapper around calling [glib.global.fileSetContentsFull] with `flags` set to `GFILESETCONTENTSCONSISTENT | GFILESETCONTENTSONL...fn
bool fileSetContentsFull(string filename, ubyte[] contents, glib.types.FileSetContentsFlags flags, int mode)Writes all of contents to a file named filename, with good error checking. If a file called filename already exists it will be overwritten.fn
bool fileTest(string filename, glib.types.FileTest test)Returns true if any of the tests in the bitfield test are true. For example, `(GFILETESTEXISTS | GFILETESTIS_DIR)` will return true if the file exists; the check whether it's a directory doesn't ma...fn
string filenameDisplayBasename(string filename)Returns the display basename for the particular filename, guaranteed to be valid UTF-8. The display name might not be identical to the filename, for instance there might be problems converting it t...fn
string filenameDisplayName(string filename)Converts a filename into a valid UTF-8 string. The conversion is not necessarily reversible, so you should keep the original around and use the return value of this function only for display purpos...fn
string filenameFromUri(string uri, out string hostname)Converts an escaped ASCII-encoded URI to a local filename in the encoding used for filenames.fn
ubyte[] filenameFromUtf8(ubyte[] utf8string, out size_t bytesRead)Converts a string from UTF-8 to the encoding GLib uses for filenames. Note that on Windows GLib uses UTF-8 for filenames; on other platforms, this function indirectly depends on the [current locale...fn
string filenameToUri(string filename, string hostname = null)Converts an absolute filename to an escaped ASCII-encoded URI, with the path component following Section 3.3. of RFC 2396.fn
string filenameToUtf8(ubyte[] opsysstring, out size_t bytesRead)Converts a string which is in the encoding used by GLib for filenames into a UTF-8 string. Note that on Windows GLib uses UTF-8 for filenames; on other platforms, this function indirectly depends o...fn
string findProgramInPath(string program)Locates the first executable named program in the user's path, in the same way that execvp() would locate it. Returns an allocated string with the absolute path name, or null if the program is not ...fn
void * fopen(string filename, string mode)A wrapper for the stdio `fopen()` function. The `fopen()` function opens a file and associates a new stream with it.fn
string formatSize(ulong size)Formats a size (for example the size of a file) into a human readable string. Sizes are rounded to the nearest size prefix (kB, MB, GB) and are displayed rounded to the nearest tenth. E.g. the fil...fn
string formatSizeForDisplay(long size)Formats a size (for example the size of a file) into a human readable string. Sizes are rounded to the nearest size prefix (KB, MB, GB) and are displayed rounded to the nearest tenth. E.g. the file...fn
void freeSized(void * mem, size_t size)Frees the memory pointed to by mem, assuming it is has the given size.fn
void * freopen(string filename, string mode, void * stream = null)A wrapper for the POSIX freopen() function. The freopen() function opens a file and associates it with an existing stream.fn
int fsync(int fd)A wrapper for the POSIX `fsync()` function. On Windows, `commit()` will be used. On macOS, `fcntl(FFULLFSYNC)` will be used. The `fsync()` function is used to synchronize a file's in-core state wit...fn
string getApplicationName()Gets a human-readable name for the application, as set by [glib.global.setApplicationName]. This name should be localized if possible, and is intended for display to the user. Contrast with [glib....fn
bool getCharset(out string charset)Obtains the character set for the [current locale][setlocale]; you might use this character set as an argument to [glib.global.convert], to convert from the current locale's encoding to some other ...fn
string getCodeset()Gets the character set for the current locale. Returns: a newly allocated string containing the name of the character set. This string must be freed with [glib.global.gfree].fn
bool getConsoleCharset(out string charset)Obtains the character set used by the console attached to the process, which is suitable for printing output to the terminal.fn
void getCurrentTime(out glib.time_val.TimeVal result)Equivalent to the UNIX gettimeofday() function, but portable.fn
bool getFilenameCharsets(out string[] filenameCharsets)Determines the preferred character sets used for filenames. The first character set from the charsets is the filename encoding, the subsequent character sets are used when trying to generate a disp...fn
string[] getLanguageNames()Computes a list of applicable locale names, which can be used to e.g. construct locale-dependent filenames or search paths. The returned list is sorted from most desirable to least desirable and al...fn
string[] getLanguageNamesWithCategory(string categoryName)Computes a list of applicable locale names with a locale category name, which can be used to construct the fallback locale-dependent filenames or search paths. The returned list is sorted from most...fn
string[] getLocaleVariants(string locale)Returns a list of derived variants of locale, which can be used to e.g. construct locale-dependent filenames or search paths. The returned list is sorted from most desirable to least desirable. Thi...fn
uint getNumProcessors()Determine the approximate number of threads that the system will schedule simultaneously for this process. This is intended to be used as a parameter to [glib.threadpool.ThreadPool.new] for CPU bo...fn
string getPrgname()Gets the name of the program. This name should not be localized, in contrast to [glib.global.getApplicationName].fn
string getRealName()Gets the real name of the user. This usually comes from the user's entry in the `passwd` file. The encoding of the returned string is system-defined. (On Windows, it is, however, always UTF-8.) If ...fn
string[] getSystemConfigDirs()Returns an ordered list of base directories in which to access system-wide configuration information.fn
string[] getSystemDataDirs()Returns an ordered list of base directories in which to access system-wide application data.fn
string getUserCacheDir()Returns a base directory in which to store non-essential, cached data specific to particular user.fn
string getUserConfigDir()Returns a base directory in which to store user-specific application configuration information such as user preferences and settings.fn
string getUserDataDir()Returns a base directory in which to access application data such as icons that is customized for a particular user.fn
string getUserName()Gets the user name of the current user. The encoding of the returned string is system-defined. On UNIX, it might be the preferred file name encoding, or something else, and there is no guarantee th...fn
string getUserRuntimeDir()Returns a directory that is unique to the current user on the local system.fn
string getUserSpecialDir(glib.types.UserDirectory directory)Returns the full path of a special directory using its logical id.fn
string getUserStateDir()Returns a base directory in which to store state files specific to particular user.fn
bool hostnameIsAsciiEncoded(string hostname)Tests if hostname contains segments with an ASCII-compatible encoding of an Internationalized Domain Name. If this returns true, you should decode the hostname with [glib.global.hostnameToUnicode] ...fn
bool hostnameIsIpAddress(string hostname)Tests if hostname is the string form of an IPv4 or IPv6 address. (Eg, "192.168.0.1".)fn
bool hostnameIsNonAscii(string hostname)Tests if hostname contains Unicode characters. If this returns true, you need to encode the hostname with [glib.global.hostnameToAscii] before using it in non-IDN-aware contexts.fn
string hostnameToAscii(string hostname)Converts hostname to its canonical ASCII form; an ASCII-only string containing no uppercase letters and not ending with a trailing dot.fn
string hostnameToUnicode(string hostname)Converts hostname to its canonical presentation form; a UTF-8 string in Unicode normalization form C, containing no uppercase letters, no forbidden characters, and no ASCII-encoded segments, and no...fn
uint idleAdd(int priority, glib.types.SourceFunc function_)Adds a function to be called whenever there are no higher priority events pending.fn
bool int64Equal(const(void) * v1, const(void) * v2)Compares the two #gint64 values being pointed to and returns true if they are equal. It can be passed to [glib.hashtable.HashTable.new] as the keyequalfunc parameter, when using non-null pointers t...fn
bool intEqual(const(void) * v1, const(void) * v2)Compares the two #gint values being pointed to and returns true if they are equal. It can be passed to [glib.hashtable.HashTable.new] as the keyequalfunc parameter, when using non-null pointers to ...fn
uint intHash(const(void) * v)Converts a pointer to a #gint to a hash value. It can be passed to [glib.hashtable.HashTable.new] as the hash_func parameter, when using non-null pointers to integer values as keys in a #GHashTable.fn
string internStaticString(string string_ = null)Returns a canonical representation for string. Interned strings can be compared for equality by comparing the pointers, instead of using strcmp(). [glib.global.internStaticString] does not copy the...fn
string internString(string string_ = null)Returns a canonical representation for string. Interned strings can be compared for equality by comparing the pointers, instead of using strcmp().fn
uint ioAddWatch(glib.iochannel.IOChannel channel, int priority, glib.types.IOCondition condition, glib.types.IOFunc func)Adds the #GIOChannel into the default main loop context with the given priority.fn
glib.source.Source ioCreateWatch(glib.iochannel.IOChannel channel, glib.types.IOCondition condition)Creates a #GSource that's dispatched when condition is met for the given channel. For example, if condition is [glib.types.IOCondition.In], the source will be dispatched when there's data available...fn
ubyte[] localeFromUtf8(ubyte[] utf8string, out size_t bytesRead)Converts a string from UTF-8 to the encoding used for strings by the C runtime (usually the same as that used by the operating system) in the [current locale][setlocale]. On Windows this means the ...fn
string localeToUtf8(ubyte[] opsysstring, out size_t bytesRead)Converts a string which is in the encoding used for strings by the C runtime (usually the same as that used by the operating system) in the [current locale][setlocale] into a UTF-8 string.fn
void logDefaultHandler(string logDomain, glib.types.LogLevelFlags logLevel, string message = null, void * unusedData = null)The default log handler set up by GLib; `funcGLib.logsetdefault_handler` allows to install an alternate default log handler.fn
glib.types.LogLevelFlags logSetAlwaysFatal(glib.types.LogLevelFlags fatalMask)Sets the message levels which are always fatal, in any log domain.fn
void logSetDebugEnabled(bool enabled)Enable or disable debug output from the GLib logging system for all domains.fn
glib.types.LogLevelFlags logSetFatalMask(string logDomain, glib.types.LogLevelFlags fatalMask)Sets the log levels which are fatal in the given domain.fn
uint logSetHandler(string logDomain, glib.types.LogLevelFlags logLevels, glib.types.LogFunc logFunc)Like `funcGLib.logsethandler`, but takes a destroy notify for the user_data.fn
void logVariant(string logDomain, glib.types.LogLevelFlags logLevel, glib.variant.Variant fields)Log a message with structured data, accepting the data within a [glib.variant.Variant].fn
void logWriterDefaultSetDebugDomains(string[] domains = null)Reset the list of domains to be logged, that might be initially set by the `GMESSAGESDEBUG` environment variable.fn
void logWriterDefaultSetUseStderr(bool useStderr)Configure whether the built-in log functions will output all log messages to `stderr`.fn
bool logWriterDefaultWouldDrop(glib.types.LogLevelFlags logLevel, string logDomain = null)Check whether `funcGLib.logwriterdefault` and `funcGLib.logdefaulthandler` would ignore a message with the given domain and level.fn
bool logWriterIsJournald(int outputFd)Check whether the given output_fd file descriptor is a connection to the systemd journal, or something else (like a log file or `stdout` or `stderr`).fn
bool logWriterSupportsColor(int outputFd)Check whether the given outputfd file descriptor supports [ANSI color escape sequences](https://en.wikipedia.org/wiki/ANSIescape_code).fn
int lstat(string filename, glib.types.StatBuf buf)A wrapper for the POSIX lstat() function. The lstat() function is like stat() except that in the case of symbolic links, it returns information about the symbolic link itself and not the file that ...fn
glib.source.Source mainCurrentSource()Returns the currently firing source for this thread. Returns: The currently firing source or null.fn
int mainDepth()Returns the depth of the stack of calls to [glib.maincontext.MainContext.dispatch] on any #GMainContext in the current thread. That is, when called from the toplevel, it gives 0. When called from w...fn
void * malloc0(size_t nBytes)Allocates nbytes bytes of memory, initialized to 0's. If nbytes is 0 it returns null.fn
void * malloc0N(size_t nBlocks, size_t nBlockBytes)This function is similar to [glib.global.malloc0], allocating (nblocks * nblock_bytes) bytes, but care is taken to detect possible overflow during multiplication.fn
void * mallocN(size_t nBlocks, size_t nBlockBytes)This function is similar to [glib.global.gmalloc], allocating (nblocks * nblock_bytes) bytes, but care is taken to detect possible overflow during multiplication.fn
string markupEscapeText(string text)Escapes text so that the markup parser will parse it verbatim. Less than, greater than, ampersand, etc. are replaced with the corresponding entities. This function would typically be used when writ...fn
bool memIsSystemMalloc()Checks whether the allocator used by [glib.global.gmalloc] is the system's malloc implementation. If it returns true memory allocated with malloc() can be used interchangeably with memory allocated...fn
void memProfile()GLib used to support some tools for memory profiling, but this no longer works. There are many other useful tools for memory profiling these days which can be used instead.fn
void memSetVtable(glib.types.MemVTable vtable)This function used to let you override the memory allocation function. However, its use was incompatible with the use of global constructors in GLib and GIO, because those use the GLib allocators b...fn
void * memdup(const(void) * mem, uint byteSize)Allocates bytesize bytes of memory, and copies bytesize bytes into it from mem. If mem is `NULL` it returns `NULL`.fn
void * memdup2(const(void) * mem, size_t byteSize)Allocates bytesize bytes of memory, and copies bytesize bytes into it from mem. If mem is `NULL` it returns `NULL`.fn
int mkdir(string filename, int mode)A wrapper for the POSIX mkdir() function. The mkdir() function attempts to create a directory with the given name and permissions. The mode argument is ignored on Windows.fn
int mkdirWithParents(string pathname, int mode)Create a directory if it doesn't already exist. Create intermediate parent directories as needed, too.fn
void onErrorQuery(string prgName)Prompts the user with `[E]xit, [H]alt, show [S]tack trace or [P]roceed`. This function is intended to be used for debugging use only. The following example shows how it can be used together with th...fn
void onErrorStackTrace(string prgName)Invokes gdb, which attaches to the current process and shows a stack trace. Called by [glib.global.onErrorQuery] when the "[S]tack trace" option is selected. You can get the current process's progr...fn
int open(string filename, int flags, int mode)A wrapper for the POSIX open() function. The open() function is used to convert a pathname into a file descriptor.fn
string pathGetDirname(string fileName)Gets the directory components of a file name. For example, the directory component of `/usr/bin/test` is `/usr/bin`. The directory component of `/` is `/`.fn
bool pathIsAbsolute(string fileName)Returns true if the given file_name is an absolute file name. Note that this is a somewhat vague concept on Windows.fn
string pathSkipRoot(string fileName)Returns a pointer into filename after the root component, i.e. after the "/" in UNIX or "C:\" under Windows. If filename is not an absolute path it returns null.fn
bool patternMatchSimple(string pattern, string string_)Matches a string against a pattern given as a string. If this function is to be called in a loop, it's more efficient to compile the pattern once with [glib.patternspec.PatternSpec.new] and call [g...fn
void pointerBitLock(void * address, int lockBit)This is equivalent to gbitlock, but working on pointers (or other pointer-sized values).fn
void pointerBitLockAndGet(void * address, uint lockBit, out size_t outPtr)This is equivalent to gbitlock, but working on pointers (or other pointer-sized values).fn
void * pointerBitLockMaskPtr(void * ptr, uint lockBit, bool set, size_t preserveMask, void * preservePtr = null)This mangles ptr as [glib.global.pointerBitLock] and [glib.global.pointerBitUnlock] do.fn
bool pointerBitTrylock(void * address, int lockBit)This is equivalent to [glib.global.bitTrylock], but working on pointers (or other pointer-sized values).fn
void pointerBitUnlock(void * address, int lockBit)This is equivalent to gbitunlock, but working on pointers (or other pointer-sized values).fn
void pointerBitUnlockAndSet(void * address, uint lockBit, void * ptr, size_t preserveMask)This is equivalent to [glib.global.pointerBitUnlock] and atomically setting the pointer value.fn
int poll(glib.types.PollFD fds, uint nfds, int timeout)Polls fds, as with the poll() system call, but portably. (On systems that don't have poll(), it is emulated using select().) This is used internally by #GMainContext, but it can be called directly ...fn
void propagateError(out glib.error.ErrorWrap dest, glib.error.ErrorWrap src)If dest is null, free src; otherwise, moves src into *dest. The error variable dest points to must be null.fn
void qsortWithData(const(void) * pbase, int totalElems, size_t size, glib.types.CompareDataFunc compareFunc)This is just like the standard C qsort() function, but the comparison routine accepts a user data argument.fn
glib.types.Quark quarkFromStaticString(string string_ = null)Gets the #GQuark identifying the given (static) string. If the string does not currently have an associated #GQuark, a new #GQuark is created, linked to the given string.fn
glib.types.Quark quarkFromString(string string_ = null)Gets the #GQuark identifying the given string. If the string does not currently have an associated #GQuark, a new #GQuark is created, using a copy of the string.fn
glib.types.Quark quarkTryString(string string_ = null)Gets the #GQuark associated with the given string, or 0 if string is null or it has no associated #GQuark.fn
double randomDouble()Returns a random #gdouble equally distributed over the range [0..1). Returns: a random numberfn
double randomDoubleRange(double begin, double end)Returns a random #gdouble equally distributed over the range [begin..end).fn
uint randomInt()Return a random #guint32 equally distributed over the range [0..2^32-1]. Returns: a random numberfn
int randomIntRange(int begin, int end)Returns a random #gint32 equally distributed over the range [begin..end-1].fn
void randomSetSeed(uint seed)Sets the seed for the global random number generator, which is used by the grandom* functions, to seed.fn
void * rcBoxAlloc(size_t blockSize)Allocates block_size bytes of memory, and adds reference counting semantics to it.fn
void * rcBoxAlloc0(size_t blockSize)Allocates block_size bytes of memory, and adds reference counting semantics to it.fn
void * rcBoxDup(size_t blockSize, const(void) * memBlock)Allocates a new block of data with reference counting semantics, and copies blocksize bytes of memblock into it.fn
size_t rcBoxGetSize(void * memBlock)Retrieves the size of the reference counted data pointed by mem_block.fn
void rcBoxReleaseFull(void * memBlock, glib.types.DestroyNotify clearFunc)Releases a reference on the data pointed by mem_block.fn
void * realloc(void * mem, size_t nBytes)Reallocates the memory pointed to by mem, so that it now has space for nbytes bytes of memory. It returns the new address of the memory, which may have been moved. mem may be null, in which case it...fn
void * reallocN(void * mem, size_t nBlocks, size_t nBlockBytes)This function is similar to [glib.global.realloc], allocating (nblocks * nblock_bytes) bytes, but care is taken to detect possible overflow during multiplication.fn
string refStringNew(string str)Creates a new reference counted string and copies the contents of str into it.fn
string refStringNewIntern(string str)Creates a new reference counted string and copies the content of str into it.fn
string refStringNewLen(string str, ptrdiff_t len)Creates a new reference counted string and copies the contents of str into it, up to len bytes.fn
void refStringRelease(string str)Releases a reference on a string; if it was the last reference, the resources allocated by the string are freed as well.fn
void reloadUserSpecialDirsCache()Resets the cache used for [glib.global.getUserSpecialDir], so that the latest on-disk version is used. Call this only if you just changed the data on disk yourself.fn
int remove(string filename)A wrapper for the POSIX remove() function. The remove() function deletes a name from the filesystem.fn
int rename(string oldfilename, string newfilename)A wrapper for the POSIX rename() function. The rename() function renames a file, moving it between directories if required.fn
int rmdir(string filename)A wrapper for the POSIX rmdir() function. The rmdir() function deletes a directory from the filesystem.fn
void setApplicationName(string applicationName)Sets a human-readable name for the application. This name should be localized if possible, and is intended for display to the user. Contrast with [glib.global.setPrgname], which sets a non-localize...fn
void setErrorLiteral(out glib.error.ErrorWrap err, glib.types.Quark domain, int code, string message)Does nothing if err is null; if err is non-null, then err must be null. A new #GError is created and assigned to err. Unlike [glib.global.setError], message is not a printf()-style format string. U...fn
void setPrgname(string prgname)Sets the name of the program. This name should not be localized, in contrast to [glib.global.setApplicationName].fn
bool setenv(string variable, string value, bool overwrite)Sets an environment variable. On UNIX, both the variable's name and value can be arbitrary byte strings, except that the variable's name cannot contain '='. On Windows, they should be in UTF-8.fn
bool shellParseArgv(string commandLine, out string[] argvp)Parses a command line into an argument vector, in much the same way the shell would, but without many of the expansions the shell would perform (variable expansion, globs, operators, filename expan...fn
string shellQuote(string unquotedString)Quotes a string so that the shell (/bin/sh) will interpret the quoted string to mean unquoted_string.fn
void * sliceAlloc0(size_t blockSize)Allocates a block of memory via [glib.global.sliceAlloc] and initializes the returned memory to 0.fn
void * sliceCopy(size_t blockSize, const(void) * memBlock = null)Allocates a block of memory from the slice allocator and copies blocksize bytes into it from memblock.fn
void sliceFreeChainWithOffset(size_t blockSize, void * memChain, size_t nextOffset)Frees a linked list of memory blocks of structure type type.fn
long sliceGetConfig(glib.types.SliceConfig ckey)fn
long[] sliceGetConfigState(glib.types.SliceConfig ckey, long address)fn
void sliceSetConfig(glib.types.SliceConfig ckey, long value)fn
uint spacedPrimesClosest(uint num)Gets the smallest prime number from a built-in array of primes which is larger than num. This is used within GLib to calculate the optimum size of a #GHashTable.fn
bool spawnAsync(string workingDirectory, string[] argv, string[] envp, glib.types.SpawnFlags flags, glib.types.SpawnChildSetupFunc childSetup, out glib.types.Pid childPid)Executes a child program asynchronously.fn
bool spawnAsyncWithFds(string workingDirectory, string[] argv, string[] envp, glib.types.SpawnFlags flags, glib.types.SpawnChildSetupFunc childSetup, out glib.types.Pid childPid, int stdinFd, int stdoutFd, int stderrFd)Executes a child program asynchronously.fn
bool spawnAsyncWithPipes(string workingDirectory, string[] argv, string[] envp, glib.types.SpawnFlags flags, glib.types.SpawnChildSetupFunc childSetup, out glib.types.Pid childPid, out int standardInput, out int standardOutput, out int standardError)Identical to [glib.global.spawnAsyncWithPipesAndFds] but with `n_fds` set to zero, so no FD assignments are used.fn
bool spawnAsyncWithPipesAndFds(string workingDirectory, string[] argv, string[] envp, glib.types.SpawnFlags flags, glib.types.SpawnChildSetupFunc childSetup, int stdinFd, int stdoutFd, int stderrFd, int[] sourceFds, int[] targetFds, out glib.types.Pid childPidOut, out int stdinPipeOut, out int stdoutPipeOut, out int stderrPipeOut)Executes a child program asynchronously (your program will not block waiting for the child to exit).fn
bool spawnCheckExitStatus(int waitStatus)An old name for [glib.global.spawnCheckWaitStatus], deprecated because its name is misleading.fn
bool spawnCheckWaitStatus(int waitStatus)Set error if wait_status indicates the child exited abnormally (e.g. with a nonzero exit code, or via a fatal signal).fn
void spawnClosePid(glib.types.Pid pid)On some platforms, notably Windows, the #GPid type represents a resource which must be closed to prevent resource leaking. [glib.global.spawnClosePid] is provided for this purpose. It should be use...fn
bool spawnCommandLineAsync(string commandLine)A simple version of [glib.global.spawnAsync] that parses a command line with [glib.global.shellParseArgv] and passes it to [glib.global.spawnAsync].fn
bool spawnCommandLineSync(string commandLine, out string standardOutput, out string standardError, out int waitStatus)A simple version of [glib.global.spawnSync] with little-used parameters removed, taking a command line instead of an argument vector.fn
bool spawnSync(string workingDirectory, string[] argv, string[] envp, glib.types.SpawnFlags flags, glib.types.SpawnChildSetupFunc childSetup, out string standardOutput, out string standardError, out int waitStatus)Executes a child synchronously (waits for the child to exit before returning).fn
int stat(string filename, glib.types.StatBuf buf)A wrapper for the POSIX stat() function. The stat() function returns information about a file. On Windows the stat() function in the C library checks only the FAT-style READONLY attribute and does ...fn
string stpcpy(string dest, string src)Copies a nul-terminated string into the destination buffer, including the trailing nul byte, and returns a pointer to the trailing nul byte in `dest`. The return value is useful for concatenating ...fn
bool strEqual(const(void) * v1, const(void) * v2)Compares two strings for byte-by-byte equality and returns true if they are equal. It can be passed to [glib.hashtable.HashTable.new] as the keyequalfunc parameter, when using non-null strings as k...fn
bool strIsAscii(string str)Determines if a string is pure ASCII. A string is pure ASCII if it contains no bytes with the high bit set.fn
bool strMatchString(string searchTerm, string potentialHit, bool acceptAlternates)Checks if a search conducted for searchterm should match potentialhit.fn
string[] strTokenizeAndFold(string string_, string translitLocale, out string[] asciiAlternates)Tokenizes string and performs folding on each token.fn
string strcanon(string string_, string validChars, char substitutor)For each character in string, if the character is not in valid_chars, replaces the character with substitutor.fn
int strcasecmp(string s1, string s2)A case-insensitive string comparison, corresponding to the standard `strcasecmp()` function on platforms which support it.fn
string strchug(string string_)Removes leading whitespace from a string, by moving the rest of the characters forward.fn
int strcmp0(string str1 = null, string str2 = null)Compares str1 and str2 like strcmp(). Handles null gracefully by sorting it before non-null strings. Comparing two null pointers returns 0.fn
string strdelimit(string string_, string delimiters, char newDelimiter)Converts any delimiter characters in string to new_delimiter.fn
string[] strdupv(string[] strArray = null)Copies an array of strings. The copy is a deep copy; each string is also copied.fn
string strerror(int errnum)Returns a string corresponding to the given error code, e.g. "no such process".fn
string strescape(string source, string exceptions = null)Escapes the special characters '\b', '\f', '\n', '\r', '\t', '\v', '\' and '"' in the string source by inserting a '\' before them. Additionally all characters in the range 0x01-0x1F (everything be...fn
string stripContext(string msgid, string msgval)An auxiliary function for gettext() support (see Q_()).fn
string strjoinv(string separator, string[] strArray)Joins an array of strings together to form one long string, with the optional separator inserted between each of them.fn
int strncasecmp(string s1, string s2, uint n)A case-insensitive string comparison, corresponding to the standard `strncasecmp()` function on platforms which support it. It is similar to `funcGLib.strcasecmp` except it only compares the first ...fn
string strndup(string str, size_t n)Duplicates the first `n` bytes of a string, returning a newly-allocated buffer `n` + 1 bytes long which will always be nul-terminated. If str is less than `n` bytes long the buffer is padded with n...fn
string strnfill(size_t length, char fillChar)Creates a new string length bytes long filled with fill_char.fn
string strreverse(string string_)Reverses all of the bytes in a string. For example, `g_strreverse ("abcdef")` will result in "fedcba".fn
string strrstr(string haystack, string needle)Searches the string haystack for the last occurrence of the string needle.fn
string strsignal(int signum)Returns a string describing the given signal, e.g. "Segmentation fault". If the signal is unknown, it returns “unknown signal (<signum\>)”.fn
string[] strsplit(string string_, string delimiter, int maxTokens)Splits a string into a maximum of maxtokens pieces, using the given delimiter. If maxtokens is reached, the remainder of string is appended to the last token.fn
string[] strsplitSet(string string_, string delimiters, int maxTokens)Splits string into a number of tokens not containing any of the characters in delimiters. A token is the (possibly empty) longest string that does not contain any of the characters in delimiters. I...fn
bool strvContains(string[] strv, string str)Checks if an array of strings contains the string str according to `funcGLib.str_equal`. strv must not be `NULL`.fn
bool strvEqual(string[] strv1, string[] strv2)Checks if two arrays of strings contain exactly the same elements in exactly the same order.fn
uint strvLength(string[] strArray)Returns the length of an array of strings. str_array must not be `NULL`.fn
void testAddDataFunc(string testpath, const(void) * testData, glib.types.TestDataFunc testFunc)Create a new test case, similar to [glib.global.testCreateCase]. However the test is assumed to use no fixture, and test suites are automatically created on the fly and added to the root fixture, b...fn
void testAssertExpectedMessagesInternal(string domain, string file, int line, string func)fn
void testBug(string bugUriSnippet)This function adds a message to test reports that associates a bug URI with a test case.fn
void testExpectMessage(string logDomain, glib.types.LogLevelFlags logLevel, string pattern)Indicates that a message with the given logdomain and loglevel, with text matching pattern, is expected to be logged.fn
void testFail()Indicates that a test failed. This function can be called multiple times from the same test. You can use this function if your test failed in a recoverable way.fn
bool testFailed()Returns whether a test has already failed. This will be the case when [glib.global.testFail], [glib.global.testIncomplete] or [glib.global.testSkip] have been called, but also if an assertion has f...fn
string testGetDir(glib.types.TestFileType fileType)Gets the pathname of the directory containing test files of the type specified by file_type.fn
void testIncomplete(string msg = null)Indicates that a test failed because of some incomplete functionality. This function can be called multiple times from the same test.fn
string testLogTypeName(glib.types.TestLogType logType)fn
void testQueueFree(void * gfreePointer = null)Enqueue a pointer to be released with [glib.global.gfree] during the next teardown phase. This is equivalent to calling [glib.global.testQueueDestroy] with a destroy callback of [glib.global.gfree].fn
double testRandDouble()Get a reproducible random floating point number, see [glib.global.testRandInt] for details on test case random numbers. Returns: a random number from the seeded random number generator.fn
double testRandDoubleRange(double rangeStart, double rangeEnd)Get a reproducible random floating pointer number out of a specified range, see [glib.global.testRandInt] for details on test case random numbers.fn
int testRandIntRange(int begin, int end)Get a reproducible random integer number out of a specified range, see [glib.global.testRandInt] for details on test case random numbers.fn
int testRun()Runs all tests under the toplevel suite which can be retrieved with [glib.global.testGetRoot]. Similar to [glib.global.testRunSuite], the test cases to be run are filtered according to test path ar...fn
int testRunSuite(glib.test_suite.TestSuite suite)Execute the tests within suite and all nested #GTestSuites. The test suites to be executed are filtered according to test path arguments (`-p testpath` and `-s testpath`) as parsed by [glib.global....fn
void testSetNonfatalAssertions()Changes the behaviour of the various `gassert()` macros, gtestassertexpectedmessages() and the various `gtesttrapassert()` macros to not abort to program, but instead call [glib.global.testFail] an...fn
bool testSubprocess()Returns true (after [glib.global.testInit] has been called) if the test program is running under [glib.global.testTrapSubprocess]. Returns: true if the test program is running under [glib.global.te...fn
void testSummary(string summary)Set the summary for a test, which describes what the test checks, and how it goes about checking it. This may be included in test report output, and is useful documentation for anyone reading the s...fn
double testTimerElapsed()Get the number of seconds since the last start of the timer with [glib.global.testTimerStart]. Returns: the time since the last start of the timer in seconds, as a doublefn
double testTimerLast()Report the last result of [glib.global.testTimerElapsed]. Returns: the last result of [glib.global.testTimerElapsed], as a doublefn
void testTimerStart()Start a timing test. Call [glib.global.testTimerElapsed] when the task is supposed to be done. Call this function again to restart the timer.fn
void testTrapAssertions(string domain, string file, int line, string func, ulong assertionFlags, string pattern)fn
bool testTrapFork(ulong usecTimeout, glib.types.TestTrapFlags testTrapFlags)Fork the current test program to execute a test case that might not return or that might abort.fn
bool testTrapHasPassed()Check the result of the last [glib.global.testTrapSubprocess] call. Returns: true if the last test subprocess terminated successfully.fn
bool testTrapReachedTimeout()Check the result of the last [glib.global.testTrapSubprocess] call. Returns: true if the last test subprocess got killed due to a timeout.fn
void testTrapSubprocess(string testPath, ulong usecTimeout, glib.types.TestSubprocessFlags testFlags)Respawns the test program to run only test_path in a subprocess.fn
void testTrapSubprocessWithEnvp(string testPath, string[] envp, ulong usecTimeout, glib.types.TestSubprocessFlags testFlags)Respawns the test program to run only test_path in a subprocess with the given envp environment.fn
uint timeoutAdd(int priority, uint interval, glib.types.SourceFunc function_)Sets a function to be called at regular intervals, with the given priority. The function is called repeatedly until it returns false, at which point the timeout is automatically destroyed and the ...fn
uint timeoutAddSeconds(int priority, uint interval, glib.types.SourceFunc function_)Sets a function to be called at regular intervals, with priority.fn
void * tryMalloc(size_t nBytes)Attempts to allocate n_bytes, and returns null on failure. Contrast with [glib.global.gmalloc], which aborts the program on failure.fn
void * tryMalloc0(size_t nBytes)Attempts to allocate n_bytes, initialized to 0's, and returns null on failure. Contrast with [glib.global.malloc0], which aborts the program on failure.fn
void * tryMalloc0N(size_t nBlocks, size_t nBlockBytes)This function is similar to [glib.global.tryMalloc0], allocating (nblocks * nblock_bytes) bytes, but care is taken to detect possible overflow during multiplication.fn
void * tryMallocN(size_t nBlocks, size_t nBlockBytes)This function is similar to [glib.global.tryMalloc], allocating (nblocks * nblock_bytes) bytes, but care is taken to detect possible overflow during multiplication.fn
void * tryRealloc(void * mem, size_t nBytes)Attempts to realloc mem to a new size, n_bytes, and returns null on failure. Contrast with [glib.global.realloc], which aborts the program on failure.fn
void * tryReallocN(void * mem, size_t nBlocks, size_t nBlockBytes)This function is similar to [glib.global.tryRealloc], allocating (nblocks * nblock_bytes) bytes, but care is taken to detect possible overflow during multiplication.fn
ushort[] ucs4ToUtf16(dchar[] str, out glong itemsRead, out glong itemsWritten)Convert a string from UCS-4 to UTF-16. A 0 character will be added to the result after the converted text.fn
string ucs4ToUtf8(dchar[] str, out glong itemsRead, out glong itemsWritten)Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte.fn
glib.types.UnicodeBreakType unicharBreakType(dchar c)Determines the break type of `c`. `c` should be a Unicode character (to derive a character from UTF-8 encoded text, use [glib.global.utf8GetChar]). The break type is used to find word and line brea...fn
int unicharCombiningClass(dchar uc)Determines the canonical combining class of a Unicode character.fn
bool unicharCompose(dchar a, dchar b, out dchar ch)Performs a single composition step of the Unicode canonical composition algorithm.fn
bool unicharDecompose(dchar ch, out dchar a, out dchar b)Performs a single decomposition step of the Unicode canonical decomposition algorithm.fn
size_t unicharFullyDecompose(dchar ch, bool compat, out dchar result, size_t resultLen)Computes the canonical or compatibility decomposition of a Unicode character. For compatibility decomposition, pass true for compat; for canonical decomposition pass false for compat.fn
bool unicharGetMirrorChar(dchar ch, out dchar mirroredCh)In Unicode, some characters are "mirrored". This means that their images are mirrored horizontally in text that is laid out from right to left. For instance, "(" would become its mirror image, ")",...fn
glib.types.UnicodeScript unicharGetScript(dchar ch)Looks up the #GUnicodeScript for a particular character (as defined by Unicode Standard Annex \#24). No check is made for ch being a valid Unicode character; if you pass in invalid character, the r...fn
bool unicharIsalnum(dchar c)Determines whether a character is alphanumeric. Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIsalpha(dchar c)Determines whether a character is alphabetic (i.e. a letter). Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIscntrl(dchar c)Determines whether a character is a control character. Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIsdefined(dchar c)Determines if a given character is assigned in the Unicode standard.fn
bool unicharIsdigit(dchar c)Determines whether a character is numeric (i.e. a digit). This covers ASCII 0-9 and also digits in other languages/scripts. Given some UTF-8 text, obtain a character value with [glib.global.utf8G...fn
bool unicharIsgraph(dchar c)Determines whether a character is printable and not a space (returns false for control characters, format characters, and spaces). [glib.global.unicharIsprint] is similar, but returns true for spac...fn
bool unicharIslower(dchar c)Determines whether a character is a lowercase letter. Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIsmark(dchar c)Determines whether a character is a mark (non-spacing mark, combining mark, or enclosing mark in Unicode speak). Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIsprint(dchar c)Determines whether a character is printable. Unlike [glib.global.unicharIsgraph], returns true for spaces. Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIspunct(dchar c)Determines whether a character is punctuation or a symbol. Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIsspace(dchar c)Determines whether a character is a space, tab, or line separator (newline, carriage return, etc.). Given some UTF-8 text, obtain a character value with [glib.global.utf8GetChar].fn
bool unicharIstitle(dchar c)Determines if a character is titlecase. Some characters in Unicode which are composites, such as the DZ digraph have three case variants instead of just two. The titlecase form is used at the begin...fn
bool unicharIswide(dchar c)Determines if a character is typically rendered in a double-width cell.fn
bool unicharIswideCjk(dchar c)Determines if a character is typically rendered in a double-width cell under legacy East Asian locales. If a character is wide according to [glib.global.unicharIswide], then it is also reported wi...fn
bool unicharIszerowidth(dchar c)Determines if a given character typically takes zero width when rendered. The return value is true for all non-spacing and enclosing marks (e.g., combining accents), format characters, zero-width s...fn
bool unicharValidate(dchar ch)Checks whether ch is a valid Unicode character. Some possible integer values of ch will not be valid. 0 is considered a valid character, though it's normally a string terminator.fn
int unicharXdigitValue(dchar c)Determines the numeric value of a character as a hexadecimal digit.fn
dchar[] unicodeCanonicalDecomposition(dchar ch)Computes the canonical decomposition of a Unicode character.fn
void unicodeCanonicalOrdering(dchar[] string_)Computes the canonical ordering of a string in-place. This rearranges decomposed characters in the string according to their combining classes. See the Unicode manual for more information.fn
uint unixFdAddFull(int priority, int fd, glib.types.IOCondition condition, glib.types.UnixFDSourceFunc function_)Sets a function to be called when the IO condition, as specified by condition becomes true for fd.fn
glib.source.Source unixFdSourceNew(int fd, glib.types.IOCondition condition)Creates a #GSource to watch for a particular I/O condition on a file descriptor.fn
void * unixGetPasswdEntry(string userName)Get the `passwd` file entry for the given username using `getpwnamr()`. This can fail if the given user_name doesn’t exist.fn
bool unixOpenPipe(int[] fds, int flags)Similar to the UNIX pipe() call, but on modern systems like Linux uses the pipe2() system call, which atomically creates a pipe with the configured flags.fn
bool unixSetFdNonblocking(int fd, bool nonblock)Control the non-blocking state of the given file descriptor, according to nonblock. On most systems this uses `ONONBLOCK`, but on some older ones may use `ONDELAY`.fn
uint unixSignalAdd(int priority, int signum, glib.types.SourceFunc handler)A convenience function for [glib.global.unixSignalSourceNew], which attaches to the default #GMainContext. You can remove the watch using [glib.source.Source.remove].fn
glib.source.Source unixSignalSourceNew(int signum)Create a #GSource that will be dispatched upon delivery of the UNIX signal signum. In GLib versions before 2.36, only `SIGHUP`, `SIGINT`, `SIGTERM` can be monitored. In GLib 2.36, `SIGUSR1` and `...fn
int unlink(string filename)A wrapper for the POSIX unlink() function. The unlink() function deletes a name from the filesystem. If this was the last link to the file and no processes have it opened, the diskspace occupied by...fn
dchar[] utf16ToUcs4(ushort[] str, out glong itemsRead)Convert a string from UTF-16 to UCS-4. The result will be nul-terminated.fn
string utf16ToUtf8(ushort[] str, out glong itemsRead, out glong itemsWritten)Convert a string from UTF-16 to UTF-8. The result will be terminated with a 0 byte.fn
string utf8Casefold(string str)Converts a string into a form that is independent of case. The result will not correspond to any particular case, but can be compared for equality or ordered with the results of calling [glib.globa...fn
int utf8Collate(string str1, string str2)Compares two strings for ordering using the linguistically correct rules for the [current locale][setlocale]. When sorting a large number of strings, it will be significantly faster to obtain colla...fn
string utf8CollateKey(string str)Converts a string into a collation key that can be compared with other collation keys produced by the same function using strcmp().fn
string utf8CollateKeyForFilename(string str)Converts a string into a collation key that can be compared with other collation keys produced by the same function using strcmp().fn
string utf8FindNextChar(string p, string end = null)Finds the start of the next UTF-8 character in the string after `p`.fn
string utf8FindPrevChar(string str, string p)Given a position `p` with a UTF-8 encoded string str, find the start of the previous UTF-8 character starting before `p`. Returns null if no UTF-8 characters are present in str before `p`.fn
dchar utf8GetCharValidated(string p)Convert a sequence of bytes encoded as UTF-8 to a Unicode character. This function checks for incomplete characters, for invalid characters such as characters that are out of the range of Unicode, ...fn
string utf8MakeValid(string str)If the provided string is valid UTF-8, return a copy of it. If not, return a copy in which bytes that could not be interpreted as valid Unicode are replaced with the Unicode replacement character (...fn
string utf8Normalize(string str, glib.types.NormalizeMode mode)Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. ...fn
string utf8OffsetToPointer(string str, glong offset)Converts from an integer character offset to a pointer to a position within the string.fn
glong utf8PointerToOffset(string str, string pos)Converts from a pointer to position within a string to an integer character offset.fn
string utf8Strchr(string p, dchar c)Finds the leftmost occurrence of the given Unicode character in a UTF-8 encoded string, while limiting the search to len bytes. If len is -1, allow unbounded search.fn
string utf8Strdown(string str)Converts all Unicode characters in the string that have a case to lowercase. The exact manner that this is done depends on the current locale, and may result in the number of characters in the stri...fn
glong utf8Strlen(string p, ptrdiff_t max)Computes the length of the string in characters, not including the terminating nul character. If the max'th byte falls in the middle of a character, the last (partial) character is not counted.fn
string utf8Strncpy(string dest, string src, size_t n)Like the standard C strncpy() function, but copies a given number of characters instead of a given number of bytes. The src string must be valid UTF-8 encoded text. (Use [glib.global.utf8Validate] ...fn
string utf8Strrchr(string p, dchar c)Find the rightmost occurrence of the given Unicode character in a UTF-8 encoded string, while limiting the search to len bytes. If len is -1, allow unbounded search.fn
string utf8Strreverse(string str)Reverses a UTF-8 string. str must be valid UTF-8 encoded text. (Use [glib.global.utf8Validate] on all text before trying to use UTF-8 utility functions with it.)fn
string utf8Strup(string str)Converts all Unicode characters in the string that have a case to uppercase. The exact manner that this is done depends on the current locale, and may result in the number of characters in the stri...fn
string utf8Substring(string str, glong startPos, glong endPos)Copies a substring out of a UTF-8 encoded string. The substring will contain endpos - startpos characters.fn
dchar[] utf8ToUcs4(string str, glong len, out glong itemsRead)Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4. A trailing 0 character will be added to the string after the converted text.fn
dchar[] utf8ToUcs4Fast(string str)Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4, assuming valid UTF-8 input. This function is roughly twice as fast as [glib.global.utf8ToUcs4] but does no error checkin...fn
ushort[] utf8ToUtf16(string str, glong len, out glong itemsRead)Convert a string from UTF-8 to UTF-16. A 0 character will be added to the result after the converted text.fn
string utf8TruncateMiddle(string string_, size_t truncateLength)Cuts off the middle of the string, preserving half of truncate_length characters at the beginning and half at the end.fn
bool utf8Validate(ubyte[] str, out string end)Validates UTF-8 encoded text. str is the text to validate; if str is nul-terminated, then maxlen can be -1, otherwise maxlen should be the number of bytes to validate. If end is non-null, then the ...fn
string uuidStringRandom()Generates a random UUID (RFC 4122 version 4) as a string. It has the same randomness guarantees as #GRand, so must not be used for cryptographic purposes such as key generation, nonces, salts or on...