File input/output: Difference between revisions

Line 2,524:
 
=={{header|Snabel}}==
Reads the entire file into into a list of buffers before writing and returns number of bytes written.
Non-blocking solution with fixed size buffers and coroutines, comparable performance to shell cp. Returns total size.
<lang snabel>
let: q io-queue;
'in' rfile read {@q $1 push _} for
0 'out' rwfile @q write $1 _ &+ for
</lang>
 
Alternative solution for large files with comparable performance to shell cp; also returns number of bytes written.
<lang snabel>
proc: do-write {(