2012-03-30 7 views
2

私は答えがわからない仕事に質問がありました。プロセス内のハンドルがディレクトリにあるとします。ハンドルにはRWが設定されており、それがデスクトップを指していると言えます。デスクトップにファイルを読み書きするためにハンドル以外のものを使用する方法はありますか?ハンドル以外のものを使用してファイルを読み書きする

ありがとうございました!

編集:明確にするために、これはWindows上にあり、デスクトップを指すファイルハンドルです。ハンドルの値をすでに知っていて、それが指すデスクトップにファイルを読み書きするために同じプロセス内でハンドルを使用することを考えていると仮定します。 Windows APIを含むすべてのコードが許可されます。

+0

あなたはどんな種類のハンドルについて話していますか? OSハンドル?もしそうなら、どのOS? –

+0

ディレクトリへのハンドルは良くありません。ファイルを書き込むには、ファイルへのハンドルが必要です。また、Win API呼び出しが許可されている場合は、もちろん何でもできます。これは本当の質問ではありません。 –

+0

言い換えれば:未知のディレクトリへのハンドルがあり、ファイルを書き込めるようにどのディレクトリが指しているかを知りたいですか? –

答えて

4

ディレクトリハンドルでGetFinalPathNameByHandle()を使用してパス名を取得し、書き込むファイルを末尾に追加してから通常通りにCreateFile()を使用できます。

+0

すばらしい答え! – NTDLS

0

標準のCとC++にはディレクトリの概念がないため、厳密な答えはであり、ではありません。

これ以上のことを言うには、さらに情報が必要です。あなたはハンドルによって何を意味しますか?あなたが利用できるプラットフォーム/ライブラリは何ですか?

また、「ハンドル以外のもの」という意味が明確ではありません。関数はハンドルではありません。あなたは関数を呼び出すことが許されていますか?

関連する問題