Design and Implementation of a Documentation Tool for ... - MADOC
Design and Implementation of a Documentation Tool for ... - MADOC
Design and Implementation of a Documentation Tool for ... - MADOC
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
}<br />
if (count > 0) {<br />
fwrite(iobuf, size<strong>of</strong>(char), count, OUTF);<br />
write(STDOUT_FILENO, iobuf, count);<br />
} else<br />
drain = 0;<br />
Uses OUTF 22a <strong>and</strong> PTM 28c.<br />
If the -f flag has been specified on the comm<strong>and</strong> line, the file should be<br />
flushed now that data has been written.<br />
37a 〈main loop body 35d〉+≡ (35c) ⊳ 36d<br />
if (fflg)<br />
fflush(OUTF);<br />
Uses OUTF 22a.<br />
A.12 Finishing Execution<br />
Since a signal h<strong>and</strong>ler can h<strong>and</strong>le more than one signal, its number is passed as<br />
an argument. However, finish() only h<strong>and</strong>les SIGCHLD, there<strong>for</strong>e it will ignore<br />
its argument. Its only task is setting CHILD to −1, which will cause the main<br />
loop to exit as soon as possible.<br />
37b 〈finish 37b〉≡ (15c)<br />
void finish(int signal) {<br />
UNUSED(signal);<br />
CHILD = -1;<br />
}<br />
Defines:<br />
finish, used in chunk 8a.<br />
Uses CHILD 8d <strong>and</strong> UNUSED 37c.<br />
UNUSED is a macro that causes the compiler to stop warning about an unused<br />
parameter.<br />
37c 〈macros 37c〉≡ (15b)<br />
#define UNUSED(var) while (0) { (void)(var); }<br />
Defines:<br />
UNUSED, used in chunks 30a <strong>and</strong> 37b.<br />
The function done() is called as soon as the main loop terminates. It cleans<br />
up the environment, resets the terminal <strong>and</strong> finishes execution. First, it has to<br />
fetch the exit status <strong>of</strong> the child process using wait().<br />
37d 〈done 37d〉≡ (15c) 38b ⊲<br />
void done() {<br />
int status;<br />
wait(&status);<br />
Defines:<br />
done, used in chunks 33c <strong>and</strong> 38c.<br />
37