問題タブ [kqueue]

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.

0 投票する
1 に答える
398 参照

epoll - libevent への epoll の移植

epoll を使用してサーバーを開発しました。Linux では問題なく動作します。しかし、kqueue を使用して macosx をサポートしたいと考えています。libevent は、これらのイベント ベースのライブラリ (epoll、kqueue) の上にある抽象化レイヤーであると聞きました。

epoll を使用してこのコードを libevent に移植するにはどうすればよいですか? サンプルコード: https://banu.com/blog/2/how-to-use-epoll-a-complete-example-in-c/epoll-example.c可能ですか (%100 互換)?

0 投票する
1 に答える
96 参照

c - ファイル ポインタの進行が止まっているように見える

sys/inotify.h を使用する Linux から、kqueues を使用する OS X にログ監視プログラムを移植しています。アイデアは、kqueue がファイル記述子を使用してファイルへの変更を監視することです。ファイルが変更されると、別の関数にファイル ポインターが渡され、ファイルへの変更がスキャンされ、特定のデータが検索されます。元のファイル データは stdout に出力され、スキャン対象のデータは stderr に出力されます。kqueues はログを正常に監視しているように見え、変更ごとに正しいバイト数を返します。正常に動作していないように見えるのはスキャン機能です。

kqueue ループ:

scan_log 機能:

scan_log の for ループに入らなくても、このプログラムの Linux バージョンから変更されていません。必要でない場合もあります。

何が起こっているかというと、ログから何も出力されず、stderr または stdout に出力されません。fp の位置を監視するために、scan_log の前後に ftell の呼び出しを使用しています。最初は動きますが、その後は動きません。いずれの場合も、データは stdout/stderr に出力されません。

編集: scan_log() コードを更新して、欠落している fprintf 呼び出しを含めました。

0 投票する
2 に答える
703 参照

c - kqueue EV_ENABLE および EV_DISABLE の目的は何ですか

kqueue で EV_DISABLE と EV_ENABLE の使用例を理解しようとしています。

現在、 への最後の呼び出しがkevent()戻ると、ev.udata代わりNULLsomePtr. kevent()イベントを有効にするだけでなく、EV_ADD が設定されていなくてもポインターを更新する場合udata、無効なイベントを追加できるようにする理由は何ですか?

0 投票する
0 に答える
49 参照

ios - Wi-Fi 接続失敗 iPad

サーバーと通信するアプリを開発しています。多くの場合、アプリを終了して再起動した場合にのみ、通信が切断され、再び機能します。デバイスログから、このエラーメッセージを見つけました

次の投稿を読みましたが、何も理解できませんでした。根本的な原因とこれを修正する方法を教えてください。

0 投票する
1 に答える
286 参照

macos - kqueue でシグナルを処理するときに siginfo_t を取得する

siginfo_tでシグナルを処理するときに構造体を取得する方法はありkqueueますか? (Linux では、epoll同様の信号を処理する場合struct signalfd_siginfoは、から読み取るだけで取得できますsignalfd)

0 投票する
1 に答える
570 参照

linux - FreeBSD で非常に大きなディレクトリを監視する最も効率的な方法

私は FreeBSD をインストールしており、10TiB の小さなファイルを含む非常に大きなディレクトリ構造を持っています。

新しいファイルの作成や既存の変更などのイベントをプログラムで監視および処理したいと考えています。使用しようとしましkqueue()たが、すべてのディレクトリとファイルを開く必要があります。ディレクトリ構造全体をトラバースすると時間がかかりすぎて、十分な時間内に完了することができません。(一晩放置してもうまくいきませんでした。)

FreeBSD で同じことを効率的に行う別の方法はありますか?

ところで、Linux は inotify を使ってそのような量のデータを処理しますか?

ご提案ありがとうございます。