アカウント名:
パスワード:
rename(2)がPOSIX仕様に準拠していないので、Windows環境ではファイルをアトミックに交換することができない。当然、Windows環境に引きずられたXamarinでもファイルをアトミックに交換する方法は提供されていないのであろう。こんな環境でまともなプログラムが書けるとは思えないのだが、多数のWindowアプリがゴミなのも当然である。
Linuxの場合(もちろんLinuxに限らず常識的なOSは全部この動作)
rename() はファイルの名前を変更し、必要ならばディレクトリ間の移動を行なう。 そのファイルに対する (link(2) を使用して作られた) 他のハードリンク (hard link) には影響はない。 オ
renameだけがクソみたいな指摘は止めろ。他はまともであるかのように勘違いする奴が出て迷惑だ。だいたいWindowsに限らず、DOS時代からMicrosoftのOSは、ファイル操作全般がゴミクズなのは常識。rename以前に置き換え自体が満足にできないクソ仕様なので、たかが使用中のファイルをアップデートする如きでリブート必須。それすらリブート中にアップデートなどという意味不明な仕様なので、Windows 10のように「アップデート後に再起動ループ」などいう無間地獄に容易く陥る。
すなわち
設定情報を保存したプロパティをシリアライズしてファイルに書き出すロジックで、「.tmp」に書き出したのちに、元のファイルを削除してから、「.tmp」を元のファイル名にリネームするコードが書かれているという。そ
「.tmp」に書いて、元を「.org」に変えて、「.tmp」を出力先のファイル名に変えて、「.org」を削除する。これくらいやって、やっとある程度安心する。
original1.「.tmp」に書いて original new.tmp2.元を「.org」に変えて original.org new.tmp3.「.tmp」を出力先のファイル名に変えて original.org original4.「.org」を削除する。 original
... 2の段階で落ちたらなくなるじゃん。全然安心出来んのだが。
originalが無い場合はoriginal.orgが居るかチェックでリカバリー処理を実施だね。#3978951 [srad.jp]と同じ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
Windowsのrename()関数を書いたやつは頭がおかしい (スコア:-1, オフトピック)
rename(2)がPOSIX仕様に準拠していないので、Windows環境ではファイルをアトミックに交換することができない。当然、Windows環境に引きずられたXamarinでもファイルをアトミックに交換する方法は提供されていないのであろう。
こんな環境でまともなプログラムが書けるとは思えないのだが、多数のWindowアプリがゴミなのも当然である。
Linuxの場合(もちろんLinuxに限らず常識的なOSは全部この動作)
Re: (スコア:0)
renameだけがクソみたいな指摘は止めろ。他はまともであるかのように勘違いする奴が出て迷惑だ。
だいたいWindowsに限らず、DOS時代からMicrosoftのOSは、ファイル操作全般がゴミクズなのは常識。
rename以前に置き換え自体が満足にできないクソ仕様なので、たかが使用中のファイルをアップデートする如きでリブート必須。
それすらリブート中にアップデートなどという意味不明な仕様なので、Windows 10のように「アップデート後に再起動ループ」などいう無間地獄に容易く陥る。
すなわち
設定情報を保存したプロパティをシリアライズしてファイルに書き出すロジックで、「.tmp」に書き出したのちに、元のファイルを削除してから、「.tmp」を元のファイル名にリネームするコードが書かれているという。そ
Re: (スコア:0)
「.tmp」に書いて、元を「.org」に変えて、「.tmp」を出力先のファイル名に変えて、「.org」を削除する。
これくらいやって、やっとある程度安心する。
Re:Windowsのrename()関数を書いたやつは頭がおかしい (スコア:0)
original
1.「.tmp」に書いて
original
new.tmp
2.元を「.org」に変えて
original.org
new.tmp
3.「.tmp」を出力先のファイル名に変えて
original.org
original
4.「.org」を削除する。
original
... 2の段階で落ちたらなくなるじゃん。全然安心出来んのだが。
Re: (スコア:0)
originalが無い場合はoriginal.orgが居るかチェックでリカバリー処理を実施だね。
#3978951 [srad.jp]と同じ。