.
Last update: 1997-05-20
9945-2-6
Class: Editorial defect
_____________________________________________________________________________
Topic: dd
Relevant Sections: 4.16.4, 2.11.5.4
Defect Report:
-----------------------
In Section 4.16.4 - Asynchronous Events {of dd}, the
standard states that ``for SIGINT, the dd utility shall
write status information to standard error before exiting.
It shall take the standard action for all other signals; see
2.11.5.4. [Draft 12 of ISO/IEC 9945-2:1993 (July 1992), p.
261, lines 3202-3203]
In this context, what does ``exit'' mean? Does this
literally mean the use of the exit() function or does it
really mean ``process termination?'' If the exit() function
is mandated, then dd contradicts the spirit of Section
2.11.5.4 - Asynchronous Events, and with the behaviour of
all other POSIX.2 utilities: the parent process cannot tell
that dd died due to a signal.
WG15 response for 9945-2:1993
-----------------------------------
The standard states that the "utility shall write status information to
standard error before exiting", when the utility receives a SIGINT.
While this can possibly be construed to mean "SIGINT causes the utility
to write status information before it exits, whenever it does exit", the
proper reading of the sentence is "upon receipt of SIGINT, the utility
will exit, writing status information before doing so".
Additionally, it is possible to read this phrase as requiring the
utility to use exit(). The use of the words "before exiting" in this
section of the standard does not require the implementation to use
exit().
Concerns about the wording of this part of the standard have been
forwarded to the Sponsors.
Rationale for Interpretation:
-----------------------------
None.
_____________________________________________________________________________