Hi Mathieu,
you ponder:
> + opt_clock_offset_ns = strtoull(str, &endptr, 0);
> + if (*endptr != '\0' || str == endptr || errno != 0) {
>Why test *endptr != '\0' and str == endptr ?
This check has been copied verbatim from the similar handler for option
OPT_CLOCK_ OFFSET.
To me, the check for *endptr != '\0' has some value. stroull(3) will report
success if the argument
starts with a valid number, and the test makes sure that the entire argument
was used in converting
the number (that is, there are no trailing bad characters).
Likewise, the check str==endptr checks if any conversion occurred at all,
although this should be covered by the error case of EINVAL.
However, the manual only treats this error case as a possibility ('may
return'),
so the check is necessary to make sure of the fact in all library
implementations.
Cheers,
JP Ikaheimonen | SW Development Engineer http://go.mentor.com/sourceryanalyzer
Mentor Embedded(tm) | Nucleus(r) | Linux(r) | Android(tm) | Services | UI |
Multi-OS
Android is a trademark of Google Inc. Use of this trademark is subject to
Google Permissions.
Linux is the registered trademark of Linus Torvalds in the U.S. and other
countries.
_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev