Recommendations
Use file handles where possible
Rules
Detect and handle file operation errors
Create temporary files in private directories
Open files with as few privileges as necessary
Validate path and filename parameters supplied to file functions