Secure temporary file: Difference between revisions
Content added Content deleted
(→{{header|Ruby}}: removed irb stuff) |
No edit summary |
||
Line 724: | Line 724: | ||
fh.print("Hello, World!\n"); |
fh.print("Hello, World!\n"); |
||
fh.close;</syntaxhighlight> |
fh.close;</syntaxhighlight> |
||
=={{header|SparForte}}== |
|||
As a structured script. |
|||
<syntaxhighlight lang="ada">#!/usr/local/bin/spar |
|||
pragma annotate( summary, "tmpfile" ); |
|||
pragma annotate( description, "Create a temporary file, securely and exclusively" ); |
|||
pragma annotate( description, "(opening it such that there are no possible race" ); |
|||
pragma annotate( description, "conditions). It's fine assuming local filesystem" ); |
|||
pragma annotate( description, "semantics (NFS or other networking filesystems can" ); |
|||
pragma annotate( description, "have signficantly more complicated semantics for" ); |
|||
pragma annotate( description, "satisfying the 'no race conditions' criteria). The" ); |
|||
pragma annotate( description, "function should automatically resolve name collisions" ); |
|||
pragma annotate( description, "and should only fail in cases where permission is" ); |
|||
pragma annotate( description, "denied, the filesystem is read-only or full, or similar" ); |
|||
pragma annotate( description, "conditions exist (returning an error or raising an" ); |
|||
pragma annotate( description, "exception as appropriate to the language/environment)." ); |
|||
pragma annotate( see_also, "http://rosettacode.org/wiki/Secure_temporary_file" ); |
|||
pragma annotate( author, "Ken O. Burtch" ); |
|||
pragma license( unrestricted ); |
|||
pragma restriction( no_external_commands ); |
|||
procedure tmpfile is |
|||
temp : file_type; |
|||
contents : string; |
|||
begin |
|||
? "Creating a temporary file"; |
|||
create( temp ); |
|||
put_line( temp, "Hello World"); |
|||
? "Reading a temporary file"; |
|||
reset( temp, in_file); |
|||
contents := get_line( temp ); |
|||
put_line( "File contains: " & contents ); |
|||
? "Discarding a temporary file"; |
|||
close( temp ); |
|||
end tmpfile;</syntaxhighlight> |
|||
=={{header|Standard ML}}== |
=={{header|Standard ML}}== |