アカウント名:
パスワード:
rename(2)がPOSIX仕様に準拠していないので、Windows環境ではファイルをアトミックに交換することができない。当然、Windows環境に引きずられたXamarinでもファイルをアトミックに交換する方法は提供されていないのであろう。こんな環境でまともなプログラムが書けるとは思えないのだが、多数のWindowアプリがゴミなのも当然である。
Linuxの場合(もちろんLinuxに限らず常識的なOSは全部この動作)
rename() はファイルの名前を変更し、必要ならばディレクトリ間の移動を行なう。 そのファイルに対する (link(2) を使用して作られた) 他のハードリンク (hard link) には影響はない。 オ
はい、嘘。
Linuxのrenameがアトミックである保証なんてない。フアイルシテム依存なので、標準のvfat実装なら当然アトミックではないし、ext4でもマウントオプション依存。
ファイル操作についてファイルシステム実装ではなく、OS単位で話をする奴は間違いなく何もわかっていない。
それはファイル操作が競合してデータ飛んだりしないだけで、実際にrenameがアトミックであるかどうかは別物。LinuxならSDカード書き込み中に抜いても壊れないとでも思ってんの?
なんでシステム上で保証されることと、SDカード抜いて壊れるってことを同列に語ってるんだよ。お前の理解レベルはマニュアル読んでこいとかそれ以前の問題だ。
SDカード抜くのが簡単にrename操作を中断させられる実例として挙げたんだよ。アトミックとスレッドセーフ区別できてるか?
なにを主張したいのか飛躍しすぎでさっぱりわからん。ユーザーランドからのアクセスに対してアトミックであることをOSが保証しているってことが理解できないの?
SD書き込み中に地震が来て津波に飲まれることも考えておかないといけませんね
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
Windowsのrename()関数を書いたやつは頭がおかしい (スコア:-1, オフトピック)
rename(2)がPOSIX仕様に準拠していないので、Windows環境ではファイルをアトミックに交換することができない。当然、Windows環境に引きずられたXamarinでもファイルをアトミックに交換する方法は提供されていないのであろう。
こんな環境でまともなプログラムが書けるとは思えないのだが、多数のWindowアプリがゴミなのも当然である。
Linuxの場合(もちろんLinuxに限らず常識的なOSは全部この動作)
Re: (スコア:0)
はい、嘘。
Linuxのrenameがアトミックである保証なんてない。
フアイルシテム依存なので、標準のvfat実装なら当然アトミックではないし、ext4でもマウントオプション依存。
ファイル操作についてファイルシステム実装ではなく、OS単位で話をする奴は間違いなく何もわかっていない。
Re: (スコア:0)
Re: (スコア:0)
それはファイル操作が競合してデータ飛んだりしないだけで、実際にrenameがアトミックであるかどうかは別物。
LinuxならSDカード書き込み中に抜いても壊れないとでも思ってんの?
Re: (スコア:0)
なんでシステム上で保証されることと、SDカード抜いて壊れるってことを同列に語ってるんだよ。
お前の理解レベルはマニュアル読んでこいとかそれ以前の問題だ。
Re:Windowsのrename()関数を書いたやつは頭がおかしい (スコア:0)
SDカード抜くのが簡単にrename操作を中断させられる実例として挙げたんだよ。
アトミックとスレッドセーフ区別できてるか?
Re: (スコア:0)
なにを主張したいのか飛躍しすぎでさっぱりわからん。
ユーザーランドからのアクセスに対してアトミックであることをOSが保証しているってことが理解できないの?
Re: (スコア:0)
SD書き込み中に地震が来て津波に飲まれることも考えておかないといけませんね