問題タブ [glib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - GHashTable内にGSListを配置するには?
GSListをGHashTable内に配置したいのですが、これをすべて管理した方法は次のとおりです。
でプログラムをコンパイルします
したがって、このプログラムはセグメンテーション違反を生成します。すべてのデータをリストに正しく追加し、リストをハッシュテーブルに追加したため、これがどのように発生するかわかりません。これを解決する方法についてのアイデアはありますか?
x11 - X11アプリをDbusに接続する方法
X11アプリケーションでDBusシグナルをリッスンする方法。Dbusシグナルをリッスンするためにgmainloopを起動する必要があり、X11アプリの場合はXEventループを起動する必要があります。それで、これを行うためのエレガントな方法はありますか?または、別のスレッドでgmainloopを実行する必要がありますか?
よろしく、リーヴォン
c++ - GLib - C++ のメイン イベント ループ
GLib ライブラリに基づく C++ で独自のメイン イベント ループを実装する必要があります。どこから始めればよいかわかりません。GLib に関するいくつかの資料を調べましたが、イベント ループの実装方法を知るのに役立ちません。誰かがそれについてアドバイスをくれたり、ソースコードを教えてくれませんか? 基本的に、GLib から GSource と GSourceFuncs を実装する必要があります。イベント ループはプラットフォームに依存しない必要がありますが、私のアプリケーションは Android で実行されます。Android でイベント ループがどのように実装されているかわかりません。誰か説明してもらえますか? どうもありがとう。
ルーカス
c - glib'イベントの残り時間を取得することは可能ですか?'
g_timeout_add
イベントIDを使用して、またはg_timeout_add_seconds
イベントIDを返すイベントを作成しています。を呼び出すことでイベントをキャンセルできg_source_remove
ます。
ただし、ある時点で、イベントが発生するまでの残り時間を確認したいと思います。glib apiを使用してこれを行う簡単な方法はありますか、それともタイムスタンプを手動で保存して比較する必要がありg_source_get_current_time
ますか?
c - glibメモリ割り当てVSstd* alloc and free
私は、std * alloc / free関数を使用して、Cプログラムの動的メモリを割り当て/解放する傾向があります。std関数の代わりにGLIBメモリ割り当て関数を使用する正当な理由があるのではないかと思います。
コミュニティがこれらの解決策のいずれかが勝者/敗者である状況を指摘できれば幸いです。また、どちらかを使用した場合に発生する可能性のあるパフォーマンスの問題にも関心があります。
ありがとう !
州のプラットフォームに編集
これらのプログラムは通常、すべてのタイプのLinux / Unixディストリビューションで実行され、通常はgcc4.2を使用してコンパイルされた64ビットのアーチです。
c++ - UTF-8 から UTF-16 ビッグ エンディアンへの文字列変換が失敗する (C、C++ 言語を使用)
g_convert() glib 関数を使用して、utf-8 文字列を utf-16 ビッグ エンディアン文字列に変換しています。変換に失敗しています。「変換はサポートされていません」というエラーが表示されます
誰かがこの問題を克服する手がかりを与えることができますか.
ありがとう
以下は、文字列を UTF-8 から変換するために使用されるコードの一部です。UTF16 バイエンディアンに
c - glib の g_file_test の問題
glib/gtk を学ぼうとしています。ディレクトリ内のファイルを印刷し、通常のファイルの場合は「f」、ディレクトリの場合は「d」を割り当てるコードを少し書きました。問題はifにあります。常に偽の値を取得し、ファイル名に「f」を追加します。
c - glibでtcmallocを使用する
Googleのtcmallocを使用して得られるパフォーマンスの向上をテストしたいと思います。私のプログラムは、glibが提供する非常に多くのユーティリティ(ハッシュ、リスト、配列など)を使用して構築されています。だから私が欲しいのは基本的にglibがglibcのmallocの代わりにtcmallocを使うようにすることです。
この問題には、次の2つのアプローチで対処できます。
- オプションを指定してglibをコンパイルし
-tcmalloc
ます。 - glibのメモリ割り当て関数
g_mem_set_vtable ()
から使用する。
私は実際には2番目のものを好みますが、それを実装するための例は見つかりませんでした。
ヒントはありますか?これを行うためのアイデアはありますか?
c - Valgrind は、glib データ型の使用時にメモリが「失われた可能性がある」と報告します
いくつかの glib データ構造 (GHashTable、GSList など) を使用してライブラリを開発しています。valgrind を使用して、コードのメモリ リークを頻繁にチェックしています。valgrind が指摘する問題のほとんどは簡単に修正できますが、私には理解できない問題がいくつかあります。
これらはすべて「失われた可能性がある」と報告されています。
valgrind スタックトレースの上部には、常に同じ 4 つのライブラリがあります。
呼び出しスタックのさらに下には、g_key_file_new()、g_slist_prepend()、g_strsplit()、g_key_file_load_from_file()、g_file_get_contents() などの glib 関数への呼び出しが常にあります。
私の質問は次のとおりです。
誰かがこれに遭遇し、それを回避する方法を見つけましたか?
それとも、これは私が無視できるものですか?ここで提案されているように、メモリプールを使用する glib が原因ですか?
私は使っている
- valgrind-3.5.0
- glib-2.12.3
- gcc (GCC) 4.1.2 20080704 (レッドハット 4.1.2-48)
- CentOS リリース 5.5 (最終版)
gcc - libwireshark に対するコンパイル
libwireshark
Ubuntu 10.10に対してプログラムをコンパイルしようとしています。と にファイルをインストールしたwireshark-dev
パッケージをインストールしました。/usr/lib/wireshark
/usr/include/wireshark
私の C ソース コード ファイルの先頭には#include <epan/epan.h>
ディレクティブが含まれており、gcc
コマンド ライン引数は次のとおりです。
ただし、これは次のような多くのエラーを返します。
これらの問題を修正するにはどうすればよいですか?