| |||||||
|
|
Click here to download plain text source code.
# subroutine name: sysreaddata # Reads all data from datafile # If error occurs (e.g. file doesn't exist), makes CGI process exit with error # Returns: reference to the content variable (\$content) # Global variables used: # $no_flock - disable flock or not sub sysreaddata { my($datafile) = @_; my $data = ""; # If OS (like Win95) desn't support flock, we have to # go unreliable and slow way and create "lock" file GetFileLock("$datafile.lock"); local *DATA; if (open(DATA,"<$datafile")) { # shared locking flock(DATA, 1) unless ($no_flock); { local($/) = undef; $data = <DATA>; } # unlock file flock(DATA, 8) unless ($no_flock); close(DATA); ReleaseFileLock("$datafile.lock"); } else { ReleaseFileLock("$datafile.lock"); die("Error in subroutine sysreaddata: can't open $datafile. Reason: $!"); } return \$data; } |
|||||||||||||||||||||
| Copyright © 1999-2007 Atomicsoft Ltd. All Rights Reserved. | ||