- open(FILE,">",$file) or return;
- print FILE $$content or do { close(FILE); return };
- close(FILE) or return;
+ sysopen(FILE,$file,O_WRONLY | O_CREAT | O_TRUNC) or return;
+ file_lock(FILE,LOCK_EX) or do { close(FILE); return };
+ binmode(FILE) if($binary);
+
+ print FILE $$content or do { close(FILE); return };
+
+ file_lock(FILE,LOCK_UN) or do { close(FILE); return };
+ close(FILE) or return;
+
+ return 1;
+}
+
+# file_unlock()
+#
+# Remove a file from the list of files in use
+#
+# Params: 1. File::UseList object
+# 2. File to remove
+#
+# Return: Status code (Boolean)
+
+sub file_unlock($$)
+{
+ my ($uselist,$file) = @_;
+
+ $uselist->remove_file($file) or return;
+ $uselist->save or return;