gtk_init(&argc,&argv)
初期化
window=gtk_window_new(GTK_WINDOW_TOPLEVEL)
ウィドウを定義
gtk_window_show(window)
ウィンドウを表示
gtk_main()
メインループ開始
カテゴリー: Linuxプログラミング
イベントループ
g_timeout_add()
引数に指定した関数を、指定したインターバルで呼び出せる
g_source_remove()
関数のループを停止する
メモリの割り当て
g_free()
メモリを開放する
詳しくはメモリの割り当てメモリほ割り当てを参照
ハッシュテーブル
g_str_hash()
ある文字列をハッシュの値に変換
g_str_eqal()
2つの文字列を比較して、それが等しいときにTRUEを返す
詳しくは
ハッシュテーブル
を参照してください
文字列操作関数
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
で行うことができます