This program uses a few techniques when it is discovered that many passes are needed to comply with the request. For example, suppose that four elementary steps were selected at recoding path optimisation time. Then Recode will split itself into four different interconnected tasks, logically equivalent to:
step1 <input | step2 | step3 | step4 >output
The splitting into subtasks is often done using Unix pipes. But the splitting may also be completely avoided, and rather simulated by using memory buffer, or intermediate files. The various ‘--sequence=strategy’ options gives you control over the flow methods, by replacing strategy with ‘memory’, ‘pipe’ or ‘files’. So, these options may be used to override the default behaviour, which is also explained below.
pipe(2) system call. All copies
of the program operate in parallel. This is the default behaviour
in filter mode. If this option is used when files are recoded over
themselves, this should also save disk space because some temporary
files might not be needed, at the cost of more system overhead.
If, at installation time, the pipe(2) call is said
to be unavailable, selecting option ‘-p’ is equivalent to selecting option
‘-i’. (This happens, for
example, on MS-DOS systems.)