3

次の関数を使用して、ファイルにデータを書き込みます。

def WriteTo1File(self, output_file, text):
    output_file.write(text)
    output_file.flush()
    os.fsync(output_file.fileno())

このfsync()呼び出しは IOError を処理するために必須です。ネットワーク ドライブに到達できないときに使用しない場合、関数はwrite()ローカル バッファーで動作し、例外は発生しません。

問題は、数回の書き込み操作の後、関数fsync()がハングすることです。それは何に関連していますか?ローカル マシンは Python 2.7 を実行する Linux です。ドライブは mount.cifs でマウントされます。リモート ディスクは、常に到達可能なローカル サーバー上にあります。リモートディスクをアンマウントすると、fsync()数十秒後に戻ります。

4

1 に答える 1

1

nostrictsyncマウントオプションを設定してみてください。

これに関する情報がhttps://www.kernel.org/doc/readme/Documentation-filesystems-cifs-READMEにあります。

于 2014-12-16T13:13:35.997 に答える