Next: Process Piping, Previous: Process Recording, Up: Process Library Samples [Index]
List the current directory, via ls(1):
text s;
xshell xs;
# set path
b_cast(xs_path(xs), "ls");
# set argv
lb_p_text(xs_argv(xs), "ls");
# start process
xs_lead(xs);
# read and print output lines, one at a time
while (f_line(xs_output(xs), s) ^ -1) {
o_text(s);
o_byte('\n');
}
The same, only relinking the output stream:
file f;
text s;
xshell xs;
# set path
b_cast(xs_path(xs), "ls");
# set argv
lb_p_text(xs_argv(xs), "ls");
# start process
xs_lead(xs);
# get a reference for the output stream - only after the process was started
f_set(f, xs_output(xs));
# read and print output lines, one at a time
while (f_line(f, s) ^ -1) {
o_text(s);
o_byte('\n');
}