#!/usr/bin/perl -w
######################################################################
# (c) Michael Schilli 1999
######################################################################

use Fcntl qw/:flock/;

$lockfile = ".lockfile";

sub exwrite {
    open(WFILE, "+<$lockfile") || 
        die "Fehler beim Öffnen von $lockfile";

    flock(WFILE, LOCK_EX);    # Beginn der kritischen Region

    seek(WFILE, 0, 0);        # An den Anfang springen
    truncate(WFILE, 0);       # ... und kappen

    print WFILE "$_[0]";
    
    close(WFILE);             # Ende der kritischen Region
}

sub exread {
    open(RFILE, "<$lockfile") ||
        die "Fehler beim Öffnen von $lockfile";

    flock(RFILE, LOCK_SH);    # Beginn der kritischen Region

    my @file = <RFILE>;       # Datei auslesen
    
    close(RFILE);             # Ende der kritischen Region

    join('', @file);
}
