アカウント名:
パスワード:
rename(2)がPOSIX仕様に準拠していないので、Windows環境ではファイルをアトミックに交換することができない。当然、Windows環境に引きずられたXamarinでもファイルをアトミックに交換する方法は提供されていないのであろう。こんな環境でまともなプログラムが書けるとは思えないのだが、多数のWindowアプリがゴミなのも当然である。
Linuxの場合(もちろんLinuxに限らず常識的なOSは全部この動作)
rename() はファイルの名前を変更し、必要ならばディレクトリ間の移動を行なう。 そのファイルに対する (link(2) を使用して作られた) 他のハードリンク (hard link) には影響はない。 オ
はい、嘘。
Linuxのrenameがアトミックである保証なんてない。フアイルシテム依存なので、標準のvfat実装なら当然アトミックではないし、ext4でもマウントオプション依存。
ファイル操作についてファイルシステム実装ではなく、OS単位で話をする奴は間違いなく何もわかっていない。
アトミックといいますが、どんな高度なシステムであろうと、ある一つのパス名で表現されるデータが一つだけという条件下で切り替えを行うとき、「処理を中断されては困る時間」を真の0秒にはできず、大変短いけれども「魔の時間」が残ってしまうのでは?
CPUがクロックで分断された離散的な時間で動いてるので、連続な時間の真の0秒なんて考えを導入するにが間違い。そんなこと言ったらアトミックって言葉がなににも当てはめられないでしょ。例えばLinuxがサポートする全てのCPUはアドレスの書き換えをアトミックに行うことができる。そこから排他制御だとかいろんなことをカーネルレベルで担保できる。
ハードウェアは物理的実体である以上、実数の時間で動いている。これを微細に検証していくと、本当に危険な時間帯は0だろうか?あなたの言う通り、アトミックという言葉は幻想であり、じつは当てはめられる条件には制限があるのでは?
いま物理現象の話してるんじゃないのわかるよね? ハードウェアが保証する動作について話してるね。じゃぁ、あなたはCPUに1+1を計算させたとき、2ではない結果が返る可能性を考慮してコーディングするわけ?
じつは当てはめられる条件には制限があるのでは?
「あるのでは?」じゃねーよ。お前の妄想なんて知るか。あるなら教えてくれ。
2ではない結果が返る可能性を考慮して
High Availability の世界だとあり得る話 (今回はそこまででもないのですが)。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
Windowsのrename()関数を書いたやつは頭がおかしい (スコア:-1, オフトピック)
rename(2)がPOSIX仕様に準拠していないので、Windows環境ではファイルをアトミックに交換することができない。当然、Windows環境に引きずられたXamarinでもファイルをアトミックに交換する方法は提供されていないのであろう。
こんな環境でまともなプログラムが書けるとは思えないのだが、多数のWindowアプリがゴミなのも当然である。
Linuxの場合(もちろんLinuxに限らず常識的なOSは全部この動作)
Re: (スコア:0)
はい、嘘。
Linuxのrenameがアトミックである保証なんてない。
フアイルシテム依存なので、標準のvfat実装なら当然アトミックではないし、ext4でもマウントオプション依存。
ファイル操作についてファイルシステム実装ではなく、OS単位で話をする奴は間違いなく何もわかっていない。
Re: (スコア:0)
Re: (スコア:0)
アトミックといいますが、どんな高度なシステムであろうと、ある一つのパス名で表現されるデータが一つだけという条件下で切り替えを行うとき、「処理を中断されては困る時間」を真の0秒にはできず、大変短いけれども「魔の時間」が残ってしまうのでは?
Re: (スコア:0)
CPUがクロックで分断された離散的な時間で動いてるので、連続な時間の真の0秒なんて考えを導入するにが間違い。そんなこと言ったらアトミックって言葉がなににも当てはめられないでしょ。例えばLinuxがサポートする全てのCPUはアドレスの書き換えをアトミックに行うことができる。そこから排他制御だとかいろんなことをカーネルレベルで担保できる。
Re: (スコア:0)
ハードウェアは物理的実体である以上、実数の時間で動いている。これを微細に検証していくと、本当に危険な時間帯は0だろうか?あなたの言う通り、アトミックという言葉は幻想であり、じつは当てはめられる条件には制限があるのでは?
Re: (スコア:0)
いま物理現象の話してるんじゃないのわかるよね? ハードウェアが保証する動作について話してるね。じゃぁ、あなたはCPUに1+1を計算させたとき、2ではない結果が返る可能性を考慮してコーディングするわけ?
じつは当てはめられる条件には制限があるのでは?
「あるのでは?」じゃねーよ。お前の妄想なんて知るか。あるなら教えてくれ。
Re:Windowsのrename()関数を書いたやつは頭がおかしい (スコア:1)
High Availability の世界だとあり得る話 (今回はそこまででもないのですが)。