Witam wszystkich.
Napewno wielu z Was slyszalo o niezawodnosci funkcji flock(), tak samo jak i ja.
Niestety w praktyce sprawa wyglada zupelnie inaczej. Przy dosc duzym obciazeniu - rzedu 200 uzytkownikow na sekunde - funkcja ta poprostu odpusza a efektem tego jest usuwanie zawartosci blokowanych plikow lub ich czesciowa destrukcja. Oto kod ktory wywoluje ta sytuacje:
<?
// =========================
// OPERACJE NA PLIKACH
// -------------------------
function file_DeleteLine ($filename, $index) {
$file = file ($filename);
$fp = fopen ($filename, "w"); for( $w = 0; $w < count($file); $w++ ) {
if ($index <> $w)
}
}
function file_UpdateLine ($filename, $index, $line) {
$file = file ($filename); $file[$index] = $line . "rn";
$fp = fopen ($filename, "w"); for( $w = 0; $w < count($file); $w++ ) {
}
}
function file_GetLine ($filename, $index) {
$file = fopen ($filename, "r"); $line = -1;
$buffer = fgets($file, 4096
); $line++;
if ($line == $index) {
return $buffer;
}
}
}
function file_LinesCount ($filename) {
} else {
$file = fopen($filename, 'r'); $lines++;
}
return $lines - 1;
}
} else return 0;
}
function file_ReplaceLines ($filename, $from, $to) {
$file = file ($filename);
$line = $file[$from];
$file[$from] = $file[$to];
$file[$to] = $line;
$fp = fopen ($filename, "w"); for( $w = 0; $w < count($file); $w++ ) {
}
}
function file_InsertLine ($filename, $line) {
$fp = fopen ($filename, "a"); fputs ($fp, $line . "rn"); }
function file_InsertLineOnTop ($filename, $line) {
$fp = fopen ($filename, "r"); }
}
$fp = fopen ($filename, "w"); $file = $line . "rn" . $old_file;
}
function file_MoveLineToTop ($filename, $index) {
$line = file_GetLine($filename, $index);
file_DeleteLine($filename, $index);
file_InsertLineOnTop($filename, $line);
}
function file_SaveToFile ($filename, $something) {
$fp = fopen ($filename, "w"); }
function file_ReadFromFile ($filename) {
$fp = fopen ($filename, "r"); return $file;
}
}
function file_CreateFile ($filename) {
$fp = fopen ($filename, "w"); }
?>
W zwiazku z tym mam pytanie.
Czy jest mozliwe napisanie funkcji ktora bedzie dawala calkowita pewnosc ze dane nie zostana utracone ?
Serdecznie dziekuje za odpowiedz i pozdrawiam.