問題タブ [procfs]

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 投票する
7 に答える
3842 参照

linux - Unix プロシージャ ディレクトリ

現在のユーザー ID を含む仮想ファイルを見つけようとしています。procディレクトリで見つけることができると言われましたが、どのファイルかはよくわかりません。

0 投票する
3 に答える
2261 参照

c - pthread が機能しない理由は何ですか?

現在、バックグラウンド スレッド (PTHREAD_DETACHED) を作成してから pthread_exit(0) を呼び出すマルチスレッド プログラム (pthreads を使用) を使用しています。私の問題は、プロセスが「無効」としてリストされ、不思議なことに /proc に「実際に存在する」ように見えないことです(これは私のデバッグ戦略を無効にします)

以下の要件を満たすことを希望します。

  • プログラムは関数 A をループで実行し、関数 B を 1 回実行する必要があります
  • プログラムの PID /proc/$pid/exe、/proc/$pid/maps、および /proc/$pid/fd にアクセスできる必要があります (プロセスが機能していない場合、それらはすべて空または無効なリンクです)。
  • 通常どおり CTRL+C と CTRL+Z でプログラムを一時停止/中断できる必要があります

編集:「メイン」スレッドにAを、生成されたスレッドにBを配置するためにプログラムのインターフェースを変更することをためらっています(現在、それらは逆になっています)。それは問題を解決しますか?

0 投票する
5 に答える
5367 参照

linux - Linux カーネル /proc FIFO/パイプ

現在、カーネル イベントに基づいてデータを生成し、それらをファイルにプッシュするカーネル モジュールを作成しようとしています。これは悪いことだと読んだ後 (私も同意見です)、必要に応じてユーザー プログラムがプルできる /proc ファイルにデータを保持する方が理にかなっていると判断しました。しかし、この考えはあらゆる種類の問題、特にこのファイルをいつ、どのようにクリアするかという問題を引き起こしました。だから私は考えました...「 /proc に名前付きパイプを作成して、そこから読み取らないのはなぜですか?」

proc ファイルの読み取り関数と書き込み関数を設定する一般的な要点はわかりましたが、これをどのように行うかについてはまだ概念的な問題があります。つまり、任意のデータを取得してカーネルからそのようなパイプに書き込む関数をどのように作成すればよいでしょうか? カーネル空間から名前付きパイプにデータをプッシュする方法を知っている人はいますか? 最終的に、/proc ファイルである必要はありません(特に、そうするのが間違っている場合) が、それが私が到達した結論でした。次に、ユーザー空間プログラムからそれにアタッチする方法を理解する必要がありますが、それは別の問題だと思います。

0 投票する
3 に答える
12541 参照

linux-kernel - /proc/driver の下に proc エントリを作成するには?

ディレクトリ配下にファイルを作成したい/proc/driver。「driver/MODULE_NAME」を明示的に使用するのではなく、マクロproc_root_driver(または提供されているもの) を使用したいと思います。私は使用しますcreate_proc_entry

グーグルで調べたところ、使用する提案が見つかりましproc_root_driverたが、使用するとエラーが発生します

この関数で宣言されていない proc_root_driver

また、proc_root_driverlinux/proc_fs.h では利用できません。

私はこのような構造を宣言しようとしました:

/proc/driverコンパイル エラーはなくなりましたが、ファイルがまたはの下に表示されませんでした/proc。でエントリを作成するにはどうすればよい/procですか?

0 投票する
3 に答える
53961 参照

linux - /proc/meminfo のエントリ

/proc/meminfoに含まれる総メモリ、バッファ、キャッシュなどのほとんどの情報を理解できます。以下にリストされているようなあまり明白でない情報は何を意味するのか教えていただけますか?

  • アノンページ
  • マッピング済み
  • スラブ
  • NFS_不安定
  • 跳ねる、弾む
  • Vmalloc合計
  • Vmalloc使用
  • VmallocChunk

誰かが不思議に思っているなら、私は Linux コマンドcat /proc/meminfoの出力について話している

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

linux - カスタム ハードウェアを 1 つの入力に接続して、/proc のどこかにスイッチを持たせる最も簡単な方法は何ですか?

低電流の 3 ~ 12v の入力信号を使用して魔法のように動作するデバイスがあり、それを Linux ボックスに接続したいと考えています。これにはどのようなオプションがありますか? 低コストでおそらくユーザー空間のソリューションがあれば素晴らしいことです。

0 投票する
3 に答える
920 参照

filesystems - procfs を使用する Linux カーネル コード: 何に注意する必要がありますか?

カーネル パッチに関する非常に優れたアイデアがあります。アイデアを具体化する前に、いくつかの調査を行い、コード例を確認したいと考えています。

/procprocfs (Linuxファイル システム)の高度な使用法を示す興味深いコード例を探しています。興味深いとは、文書化された値を読むだけではありません。


私の考えは、すべてのプロセスに簡単なブロードキャスト メカニズムを提供することです。たとえば、 の複数のインスタンスを実行rsyncし、各子の転送ステータス (これまでに転送されたバイト数) を確認するプロセスを考えてみましょう。現在、私はそれを行うことができる方法を知りません。

にデータを書き込むための最小限のインターフェイスをプロセスに提供するつもりprocfsです。そのデータは、PID ディレクトリの下に配置されます。例えば:

主に並行性の分野で、これには多くの利点があると思います。

ところで、そのようなメカニズムがすでに存在する場合は、教えてください...

0 投票する
3 に答える
6313 参照

c++ - proc / pid/cmdlineを解析して関数パラメーターを取得する

コマンドライン内のデータを使用して、アプリが呼び出されたパラメーターを抽出しようとしています。

このようなアプリケーションインスタンスを起動すると、次のようになります。

myapp 1 2

次に、myappのコマンドラインをcatします。myapp12のようなものが表示されます。

これらの値を抽出する必要があり、このコードを使用して抽出しました



しかし、私が得ているのはアプリ名だけで、パラメーターはありません...


回答からコピーされた更新:

さて、私の質問は、最初のNULL文字で停止せずにcmdlineファイルを読み取る方法のようです...

他には何もしませんので...

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

linux - proc_fops.open から proc_dir_entry にアクセスしていますか?

/proc で何らかの作業を行う Linux カーネル モジュールを作成しています... /proc のデータを返すために新しい seq メソッドを使用しようとしています...とにかく、proc_create_data() を呼び出した後、proc_dir_entry (その->data メンバーは、提供されたコンテキストを指しています)...とにかく、file_operations 構造体も渡され、proc_dir_entry または proc_dir_entry->data に open() ファイル操作からアクセスする方法を本当に知る必要があります...

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

c - プロセスのスレッドレベルのメモリ消費量

Linux でプロセスのスレッドごとのメモリ消費量を取得するにはどうすればよいですか? /proc/pid/task/tid/statm を使用できることは理解していますが、それは私の場合には役に立ちません。すべてのスレッドが同じ値を示し、PID の statm と同じです。

valgrind を実行できますが、無効な読み取り/書き込みやリークを探していません。Valgrind は、スレッド レベルの情報を教えてくれません。

他の提案はありますか?

編集:コードをプロファイリングするにはどうすればよいですか? どの関数/行番号などにどのくらいのメモリが割り当てられましたか?