kurukuru-papaのブログ

主に、ソフトウェア開発に関連したメモを書き溜めたいと思います。

TrueCryptでファイル変更できない時の対処法

TrueCryptを使用していてちょっと問題が発生しました。今までTrueCryptを使用していたユーザがいたのですが、今回、別のユーザでファイルにアクセスすると、ファイルを変更することができませんでした。(ただし、フォルダやファイルの追加は出来ました。)

原因

Windows機能によるファイルやフォルダへの権限設定の問題のようです。ファイルを作成した時のユーザと、今回アクセスしたユーザが異なるので、ファイル変更する権限がありませんでした。

対策

ボリュームをマウントして割り当てられたディクスのプロパティダイアログを開き、セキュリティタブから、今回操作するユーザをフルコントロール権限で追加すると、ファイル変更ができるようになりました。

動作環境

  • Windows 7 Home Edition 64bit
  • TrueCrypt Version 7.1

Sleep処理の誤差が気になったので動作確認ソフトウェアを作成してみました

C#.Netにおいて、System.Threading.Thread.Sleep()で、数ミリ秒の時間を扱ってプログラムを書いていました。動作させてみると、このSleep処理で思ったタイミングで動作していないように思えました。調べてみるとSleep処理には、ある程度誤差が発生するようです。しかもこの誤差は端末(?)やOSによって異なるようです。私の環境では、どの程度の誤差が発生するのか、動作確認ソフトウェアを作って調べてみました。

作成したプログラムの結果では、1秒のスリープを3回行い、最小2ミリ秒、最大24ミリ秒の誤差がありました。

動作確認ソフトウェア

作成したのは、左のようなソフトウェアです。Sleepさせる時間と、測定する回数を入力して、実行ボタンを押すと、画面下部に測定結果が表示されます。最後の2行に、Sleepした時間の最小値と最大値が表示され、誤差が確認できるようにしています。

作成したソフトウェアとソースは、次の場所に、SleepCheck-XXX.zip(XXXはバージョン番号)という名前でおいておきました。
ダウンロード - Kurukurupapa SandBox - SourceForge.JP

動作環境

Windows 7 64bit
Microsoft Visual C# 2010 Express