/**
* Used for POSIX+XSI
*/
module stratego/xtc/posix-xsi/Proc
strategies
/**
* Creates a new and unique scoped temporary file.
*
* @type _ -> String
*/
xtc-new-file =
new-temp-file => (f, fd)
; where(
<assert(!TempFiles)> (f, ())
)
; <close> fd
; !f
strategies
/**
* Concatenates the content of a list of files and stores
* the result in a fresh File. Each file in the list can
* be a FILE, stdin, stdout, or stderr.
*
* @type List(FILE) -> FILE
*/
xtc-cat:
in-files -> file
where xtc-new-file-name => file
; <xtc-open-fd> file => fdout
; <map(File-as-fd(<fdcopy> (<id>, fdout)))> in-files
; <xtc-close-fd> fdout