ファイルロック
Linux 2.4 とその後の版では "dnotify" 機構によってファイルの外見上の変化を通知してもらうことができる(fcntl で F_NOTIFY を指定)。ただし、この機構は Linux 2.6.13 では inotifyで置き換えられた。
また、強制ロックもサポートしていて "mount -o mand" というファイルシステムをマウントする時のパラメータを設定しておき、個別のファイルディスクリプタにfcntlを設定して使用する。ただし、多数のバグが存在し、滅多に使われない。
このため、リード/ライト要求が全てファイルサーバ上の実際のファイルに対して行われるので、ファイルアクセスが遅くなったように感じられるのである。
アプリケーションのエラー処理にバグがあるとファイルがロックされて(共有アクセスでもバイト単位ロックでも)、他のアプリケーションからアクセスできなくなる。このとき、不正動作しているプログラムを手動で終了させることでファイルアクセスが可能になるだろう。これは一般に「タスクマネージャ」を使って行う。
ファイル共有はCreateFile 関数でファイルをオープンするときの共有モード引数(dwShareMode)で指定する。ファイルをオープンする際にリード/ライト/削除のアクセスに関してファイルを共有することを許可する。その後の同じファイルのオープンは、それ以前のオープンで許可されたタイプしか許されない。ファイルをクローズすると、そのクローズに対応したオープンの設定した共有アクセス制限が外される。
バイト単位のロック種別はLockFileEx関数でファイルの一部領域をロックするときに dwFlags 引数で指定する。Windows API 関数 LockFileはファイルの一部を排他的にロックするのに使うことができる。
プログラムとして実行されているファイル(例えば、EXE、COM、DLL、CPLなど)は、一般にライト/削除アクセスのためのオープンができないようファイルシステムが制限し、共有違反(sharing violation)が報告される。しかし、ある種のアクセスは許されている。