問題タブ [gio]
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.
python - Windows で Glib を使用してソケットを監視すると、非ブロック モードになります
次のコードは、Windows では正しく動作しません (Linux では動作します)。
glib ソースのさまざまな場所にあるコメントのスニペットや、他の場所で、Windows ではポーリング中にソケットが非ブロック モードになることが言及されています。その結果、コールバックself.outgoing_cb
が常に呼び出され、ソケットへの書き込みが次のエラー メッセージで失敗します。
書き込み前の呼び出しsock.setblocking(True)
は、これを回避するようには見えません。ポーリングの優先順位を下げ、エラー メッセージを無視すると、期待どおりに動作しますが、多くのイベントがスローされ、多くの CPU が消費されます。Windows でこの制限を回避する方法はありますか?
アップデート
指摘するかもしれませんが、ポーリングの全体的なポイントはPOLLOUT
、書き込み呼び出しを行ったときにEAGAIN
/を取得できないことEWOULDBLOCK
です。私が受け取っている奇妙なエラー メッセージは、これら 2 つのエラー コードに相当する Windows のものだと思います。言い換えれば、gobject.IO_OUT
ソケットが正常に書き込みを許可しない場合にイベントを取得していますが、それをブロック モードにすると、この不適切なエラーが発生します。
別のアップデート
これが正しく機能する Linux では、ソケットは非ブロッキング モードに切り替えられず、ソケットがIO_OUT
ブロックせずに、またはエラーをスローせずに書き込みを許可するときに を受け取ります。Windowsでエミュレート/復元したいのはこの機能です。
その他の注意事項
からman poll
:
からman select
:
python - Pythonでgioとsamba共有にアクセスする
gioのPythonバインディングを介して共有にアクセスするための単純なコマンドラインクライアントを作成しようとしています(はい、主な要件はgioを使用することです)。
その前身のgnome-vfsと比較すると、認証処理(サブクラス化MountOperation
)を行うためのいくつかの手段が提供されており、のようなsamba共有に非常に固有のいくつかの方法も提供されていることがわかりset_domain()
ます。
しかし、私はこのコードで立ち往生しています:
fh.mount_enclosing_volume()
そのサーバーが認証を必要とする場合、このメソッドはパラメーターとしてを使用するため、への呼び出しが必要であると思いMountOperation
ます。問題は、このメソッドを呼び出しても何も行われず、fh.enumerate_children()
次に来る論理(使用可能な共有を一覧表示する)が失敗することです。
誰もがこれがgioでどのように行われるかについての実用的な例を提供できますか?
python - GIOを使用した非同期HTTPリクエスト
PythonのGIOバインディングを使用して非同期HTTPPOSTリクエストを実行する方法の例をいただければ幸いです。
編集:ツイストを使用せずに求められた例。
glib - Gファイルの問題
私は持っています:
私のコードで。しかし、コンパイルしようとすると、次のエラーが表示されます。
未定義の参照: 'g_file_new_for_path'
私が持っているインクルードセクションで#include <gio/gio.h>
このコードのどこが間違っていますか?
glib - valaFileInfoget_file_typeは不明です
私は、ディレクトリを通過し、ディレクトリ内のすべてのファイルとサブディレクトリを一覧表示する関数を作成しようとしています。
このコードを実行すると、サブディレクトリ内のファイルは出力されません。すべてのファイル/ディレクトリタイプは「G_FILE_TYPE_UNKNOWN」です。誰かがこれまたは私が使用できる別の方法を修正する方法を知っていますか?
c++ - Gio ファイル モニターを使用した gtkmm アプリケーション
複数のディレクトリの変更を監視する必要があります。ドキュメントが示唆しているように、ディレクトリモニターを使用Gtk::Main
、呼び出し、および追加しています。Gio::Init
ただし、どのディレクトリに対しても、コールバックは呼び出されません。モニター専用の別のループが必要ですか? もしそうなら、どのように組み合わせて使用しGtk::Main
ますか?
linux - iPod のマウントに関する複数のマウント イベント
ストレージボリュームがマウントされているかマウント解除されているかを検出する必要があるアプリに取り組んでいます。そのために使っGIO
ています。mount-added
との信号を聞いていmount-removed
ます。ペンドライブをマウント/アンマウントすると、すべて正常に動作します。ただし、iPod のマウント時に問題が発生します。マウントとアンマウントでそれぞれ 2 つのコールバックを取得しています。GMount
オブジェクトの 1 つがシャドウされると想定しましたが、g_mount_is_shadowedは両方に対して false を返します。どちらを処理し、どれを無視するかを決定するにはどうすればよいですか? 両方処理できません。ストレージ デバイスに対応するマウント/アンマウントを検出し、それのみを処理する必要があります。
linux - GMountとGVolume
私は初めてで、との間でGIO
完全に混乱しています。参照によると、これは「マウントされた」ファイルシステムであり、マウント可能なユーザーに表示されるオブジェクトを表しているときにアクセスできます。これら2つのタイプについていくつか質問があります。GMount
GVolume
GIO
GMount
GVolume
- マウントされ
GVolume
たオブジェクトはオブジェクトと同等GMount
ですか? - マウントされた
GVolume
オブジェクトは常にオブジェクトに関連付けられGMount
ます。それらの間の関係は何ですか? - オブジェクトは、オブジェクト
GMount
に関連付けられている場合と関連付けられていない場合がありGVolume
ます。後者に関連付けられていないのはいつですか?
python - GIOのGSocketのPythonバインディングはどこにありますか?
Pythonバインディングはどこにありますか、またはGIOのGSocketおよびその他の低レベルネットワークサポートのPythonバインディングの現在のステータスは何ですか?