+
+/*
+ * Function: platform_getenv
+ * Get a value from the current enviroment.
+ *
+ * Parameters:
+ * var - Enviroment variable name
+ *
+ * Returns:
+ * A pointer to the enviroment table entry containing `var. It's not
+ * safe to modify the value of the enviroment variable using the returned
+ * pointer. The return value is *NULL* if `var` is not found in the
+ * enviroment table.
+ */
+const char *platform_getenv(const char *var);
+
+/*
+ * Function: platform_vasprintf
+ * Print to allocated string
+ *
+ * Parameters:
+ * dat - Pointer to pointer to store allocated data.
+ * fmt - Format specification.
+ * args - Variable argument list.
+ *
+ * Returns:
+ * Number of character written, -1 is used to indicate an error.
+ *
+ * Remarks:
+ * Allocate a string large enough to hold the output including
+ * the terminating null character than write formatted output
+ * to it using format specification.
+ */
+int platform_vasprintf(char **dat, const char *fmt, va_list args);
+
+/*
+ * Function: platform_vfprintf
+ * Write formatted output using a pointer to a list of arguments.
+ *
+ * Parameters:
+ * stream - Pointer to stream.
+ * format - Format specification.
+ * atrg - Variable argument list.
+ *
+ * Returns:
+ * Number of characters written, not including the terminating null
+ * character, or a negitive value if an output error occurs. -1 is
+ * also used to indicate an error.
+ *
+ * Remarks:
+ * Takes a pointer to an argument list, then formats and writes the
+ * given data to `stream`.
+ */
+int platform_vfprintf(FILE *stream, const char *format, va_list arg);
+
+/*
+ * Function: platform_strcat
+ * Append characters of a string.
+ *
+ * Parameters:
+ * dest - Null terminated destination string
+ * src - Source string
+ *
+ * Returns:
+ * Pointer to the destination string. No return value is used to indicate
+ * an error.
+ *
+ * Remarks:
+ * Appens `src` to `dest` and terminates with resulting null character.
+ * The initial character of `src` overwrites the terminating null
+ * character of `dest`. The behaviour of platform_strcat is undefined
+ * if the source and destination string overlap.
+ */