2

Mac OSXでディスクキューの長さを(読み取り操作と書き込み操作で別々に)読み取る必要があります。私はすでに、これはdtraceを介してのみ実行できるという結論に達しました(ここで間違っていることを嬉しく思いますが、これを別の方法で実行する方法は見つかりませんでした)。この情報を提供する唯一の方法は、iopendingdtraceスクリプトです。Cプログラムで提供される情報にアクセスできる(またはロジックを実装できる)必要があります。libdtraceの使用法は、dtraceビジネス全体として、非常にわかりにくいものです(プライベートAPIを考慮)。私の質問に答えない例がありますか(私の質問に答えないものがいくつかあります-libdtraceバッファリングされた出力http://www.osdevcon.org/2008/files/osdevcon2008-petr.pdf)私を助けることができますか?

4

1 に答える 1

0

libdtrace を直接使用するのは、技術的には非公開の API であるため、少し面倒ですが、他の DTrace コンシューマーで例を見つけることができます。libdtrace は、それをサポートするすべてのプラットフォーム (Mac OS、Solaris、FreeBSD) で基本的に同じであり、その結果、API は非常に安定しています。ただし、Solaris にはさらにいくつかの更新が加えられており、IIRC Mac OS は他のプラットフォームで利用可能なすべての機能をサポートしているわけではありません。ただし、これにより、作業するためのより多くの例が得られます。

dtraceこれらのプラットフォームのいずれかでコマンドのソース コードを調べるか、 node-libdtraceなどのライブラリのラッパーのソース コードを調べることができます。後者をお勧めします。これは、重要な高レベルの操作を提供する単なるラッパーであり、どのコードが何を行うかを簡単に理解できるようにするためです。

于 2013-05-21T22:16:01.280 に答える