C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 40 を表示中)
■20742 / )  Re[45]: ディレクトリの排他アクセス
□投稿者/ れい (663回)-(2008/06/14(Sat) 15:19:36)
No20740 (す さん) に返信
> ■No20480 (ネタ好き さん) に返信
>>WindowsOSがディレクトリとファイルを同一に扱うのは【効率】的であるからであって、APIとして公開する部分については【概念】を提供しているわけですから、ディレクトリとファイルの扱いに明確に一線を引いているのではないかと私は推測しています。
>
> 違うものを同じに扱いたいというほうが理解できないです。
> ファイルはユーザが勝手に使えばよいわけですが、
> ディレクトリはシステムの持ち物で、勝手に使われては困ると思うのですが。
> データベースファイルがCreateFile()でオープンできるからと言って、
> DBMSがファイルハンドルベースのAPIを提供すべきだと言ってるような。

良いとか悪いとか、納得いくかいかないかという話は置いといて。

す さんは「ディレクトリ」と「ファイル」を包含する概念として「ファイルシステムエントリ」を考えるのが
意味が無いと思うわけですよね。
私は意味があると思いますが。

現実には、ntdllの層までは「ファイルシステムエントリ」として扱っています。
つまり、ntdllを設計した人は、「意味がある」と思っていたことになります。

で、一方、Win32の層では「ファイルシステムエントリ」が
「ファイル」と「ディレクトリ」に分かれてしまっている、というのも現実です。
つまり、Win32を設計した人は、「わかれていたほうがいい」と「積極的に」思っていたことになります。

ここで設計理由・思想が変わってるわけですよね。

その差、本質的理由が知りたいのです。
「違うものを同じに扱いたいというほうが理解できないです。」
という理由は、同じ主張がWin32だけでなくntdllやFSDにも当てはまります。
Win32だけ違う理由としては説得力がありません。

ntdllまでの層と、Win32とで、設計が違う理由は何でしょう?

いままで出てきたように「歴史的理由」も理に適ってはいますが、
それならFindFirstFileをサポートした上で
ディレクトリハンドルも開けるようになってもいい。
なので、これも根拠としては少し弱い。

なんか簡単な理由がありそうなんだけど。
返信 編集キー/


管理者用

- Child Tree -