1. ホーム
  2. c

[解決済み] C言語におけるポインタとハンドル(この言葉は別々のものを伝えるために使われているのでしょうか?)

2022-01-25 15:43:29

質問

最近、構造体へのポインタをハンドルと呼んでいる人のホワイトペーパーを読みました。 この著者は明らかに以前WindowsプラットフォームでCコードを書いたことがある人でした。 ググってみると、Windowsプログラマはハンドルを使ってシステムコンポーネントとやりとりしていることがわかります。 Windowsプログラマが構造体ポインタをすべてハンドルと呼ぶのは一般的なことなのでしょうか? それとも、ハンドルという言葉は、構造体へのポインタを超える何かを伝えるためのものなのでしょうか? LinuxのCプログラマーとして質問させていただきます。

私が参考にしているホワイトペーパーは Duff, Heroux, and Pozo. An Overview of the Sparse Basic Linear Algebra Subprograms(疎な基本線形代数サブプログラムの概要)。BLAS技術フォーラムからの新標準。 ACM Transactions on Mathematical Software, Vol 28, No.2, June 2002, Pages 239-267.

解き方は?

ハンドルという用語は一般に、それを生成したAPIにのみ意味を持つ不透明な値を意味します。 Win32では、HANDLE型はカーネル・メモリ内のポインタ(いずれにせよアプリケーションはアクセスできない)か、カーネル内部の配列へのインデックスのどちらかです。