文字列操作関数

g_strdup()
文字列をコピーして新しく確保した領域へのポインタを返す
g_strdup-printf()
指定したフォーマットと、引数に与えられたパラメータにより
文字列を作成し、新しく確保した領域へのポインタを返す
sprintf()と同じ動きをするが、文字列用の領域を確保しなくてよい
g_strsplit()
文字列stringを、区切り文字delimiterで、
最大max_tokens個に分割する関数
g_new()
指定したデータ型struct_typeのメモリ領域を
n_structs分 確保し、
0 で初期化してその先頭アドレスを返す
この関数はg_malloc()のマクロとして定義されている
g_free()
マクロ g_new()などで確保された領域を開放する
g_strfreev()
g_strplit()などで確保された文字列の配列領域を開放する
詳しくは文字列ユーティリティ関数を参照してください

GHashTable に対する関数

g_hash_table_new()
ハッシュテーブルを作成する関数
g_hash_insert()
新しいキーと値を挿入する関数
g_hash_table_size()
GHashTable の中にある要素の数を返す関数
g_hash_table_lookup()
GHashTable の中にあるキーを検索する関数
g_hash_table_destroy()
GHashTableを破棄する関数
直接メモリ上に値やキーを確保したときは、先に開放すること
詳しくはハッシュテーブルを参照してください

コンパイルの時の注意

$ gcc hello_world.c -o hello_world ‘pkg-config gtk+-2.0 –cflags –libs‘
と入力しても、なぜかコンパイルできない、ということがありました
原因をしらべたところ
スペルミスでした
‘pkg-config gtk+-2.0 –cflags –libs‘
の部分で
Shift + 7 の ‘ ではなく
Shift +@ による ` でした

GLibに関する関数

g_list_append()
リストにデータを追加する関数
g_list_insert()
指定した位置にデータを挿入する関数
g_delete_link()
リストから指定した位置のノードを削除する関数
削除する前に領域を開放する
g_list_free()
リストを開放する関数
g_list_forearch()
リストのおのおののノードに対して funcを実行する

Makefileが複数ある時のmakeのやり方

サンプルプログラムを本をみながら書いていると
次第にMakefile が大量にできてきます
そうなると、ただ単に
$make
としても
$make
make: *** ターゲットが指定されておらず, makefile も見つかりません. 中止.
となってしまいます
そこで使うのが -f オプションです
make -f Makefile
とすることでmakeすることができます
例:
$ make -f Makefile.sample

RPMとソースからのインストール

RPMでインストールしたコマンドよりもソースからインストールしたコマンドの方が優先度は上になります
優先度を調べるには
$ echo$PATH
で調べることができます
そして、左から順に優先度があがります
例として
echo $PATH
とし
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin
の場合
一番左にある
/usr/lib/qt-3.3/bin:
が優先度がもっとも高くなります
つまり、同じコマンドをソースからインストールし、yumコマンドでも
インストールすると、ソースからインストールされたほうが実行されるため
、コンパイルのときに思わぬエラーになったりします
もし、エラーがでて困るようでしたら
ソースの方をアンインストールしましょう
アンインストール方法は、
make uninstall
で行うことができます