| |
GTK+ 2.0 Tutorial |
||
---|---|---|
GLib |
GLib определяет новый тип, названный GString, который является подобным стандартному C string, но который увеличивается автоматически. Это строковые данные с нулевым символом в конце, что дает вам - защиту от буферного переполнения, программируя ошибки в пределах вашей программы. Это - очень важная особенность, и следовательно я рекомендую, чтобы вы использовали GStrings. Сам GString имеет простое общее определение:
struct GString { gchar *str; /* Points to the string's current \0-terminated value. */ gint len; /* Current length */ }; |
Есть множество операций, которые вы можете сделать с GString.
GString *g_string_new( gchar *init ); |
Эта конструкция GString, копирует строковое значение из init в GString и возвращает указатель на него. NULL можно дать как параметр для первоначально пустого GString.
void g_string_free( GString *string, gint free_segment ); |
Освобождаем память для данного GString. Если free_segment TRUE, то также освобождаются его символьные данные.
GString *g_string_assign( GString *lval, const gchar *rval ); |
Это копирует символы из rval в lval, удаляя предыдущее содержание lval. Отметьте, что lval будет удлинен по мере необходимости, чтобы вместить содержание строки, в отличие от стандартной функции strcpy().
Остальная часть этих функций должна быть относительно очевидной ("_c" версии принимают символ вместо строки):
GString *g_string_truncate( GString *string, gint len ); GString *g_string_append( GString *string, gchar *val ); GString *g_string_append_c( GString *string, gchar c ); GString *g_string_prepend( GString *string, gchar *val ); GString *g_string_prepend_c( GString *string, gchar c ); void g_string_sprintf( GString *string, gchar *fmt, ...); void g_string_sprintfa ( GString *string, gchar *fmt, ... ); |
Timers |
Utility and Error Functions |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |