問題タブ [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.
c - /proc で更新中のファイルを閉じずに再読み込みするとうまくいきますか?
/proc/stat
更新された値を取得するためにファイルを再読み込みしています。まず、ファイルを開き、各行を読み取り、ファイルを閉じてから再度開いて、更新された値を取得しました。ファイルを閉じる必要があるかどうか、またはファイルの開始を求めることで同じ効果が得られるかどうかを知りたいです。ファイルを閉じず、代わりにファイルポインタをファイルの先頭に配置するコードを書きましたが、これは以前と同じように機能しました。しかし、ファイルの開始時に更新された情報を取得することを保証することを求めていることを知りたいですか?
編集:もう1つのポイントは、私はシークと読み取りの間で寝ています。
この質問は言語固有のものではありませんが、コンテキスト内の実装言語は次のとおりです。C、Perl。
編集
これが私が書いたコードです。
対。
どちらが好ましいですか?
ios - Mac OS (および iOS) でプロセスのメモリ使用量を取得する方法は?
Linux では、カーネルは /proc/[pid]/statm を介してさまざまなプロセスごとのメモリ カウンターを公開します。
- プログラムの合計サイズ
- 常駐セットサイズ
- 共有ページ
- テキスト (コード)
- データ/スタック
- 図書館
- ダーティーページ
Mac OS (および iOS) でそのようなものに相当するものは何ですか? 私は sysctl インターフェースを認識していますが、同等の情報を提供しているようには見えません。
Mac OS で「トップ」出力 (root 以外のユーザーによって呼び出された) を見たところ、次のようなものが含まれています。
- RPRVT - ヒープ割り当てによって消費される常駐メモリの量
- RSHRD - 常駐共有メモリー (共有ライブラリー) の量
- RSIZE - ~ RPRVT + RSHRD に等しい
- VSIZE - プロセスによって消費されたメモリの総量 (常駐メモリとページ メモリの合計)
そのような情報はどこで取得されるのだろうか。top に表示されない追加のカウンター (Linux のものと同様) はありますか。
iOSはどうですか?
編集:プロセスごとのメモリ使用量カウンターを探していることに注意してください(グローバルシステムのものではありません)
ありがとう!
linux - 既存のエントリの下に proc エントリを作成する
私のカーネル モジュールは、既存の proc エントリの下にエントリを作成します/proc/sys
。
したがって、通常の呼び出しはproc_create
失敗します。
parent node
次に、proc_fs.hをチェックして、権利を取得する関数があるかどうかを確認しようとしましたが、役に立ちませんでした。
私は今どうすればいい?
linux-kernel - dmesg に printk ステートメントが表示されない
proc エントリを作成しようとしています。私のinit_module関数は以下の通りです
以下はクリーンアップ方法です
プログラムの残りの部分には、変数定義とコールバック関数が含まれます。
このプログラムをコンパイルすると、うまくコンパイルされます。私がそれを使用するinsmod
と、私にプロンプトが返信されません。
lsmod
私のモジュールを一覧表示し、モジュールが使用するものを示します (何がわからない)。
dmesg
上記の printk メッセージは表示されません。
ここで何が問題なのか教えてもらえますか?
linux - カーネルで現在のユーザーを取得する方法、つまり current->uid を正しい方法で呼び出す方法
Loadable Kernel Modules (LKM) を書いています。cat/proc/ を実行したユーザーが現在のユーザーである場合、この LKM は特別なことを行う必要があります。だから私はこの情報を見つける方法を理解しようとしています。私の最初の試みは、cred.h で定義されているように get_current_user() を使用することでした。しかし、それはうまくいきません。http://lxr.linux.no/linux+*/include/linux/cred.h#L290私は他の方法を探していません これは私が見つけたものです どれもうまくいかないようです Linuxカーネルモジュールを書くときにユーザーIDを取得する 方法 方法カーネル空間から Linux syscall を呼び出しますか?
問題の関数:
gcc 出力: