Manual Pages for UNIX Darwin command on man fmtcheck
MyWebUniversity

Manual Pages for UNIX Darwin command on man fmtcheck

FMTCHECK(3) BSD Library Functions Manual FMTCHECK(3)

NAME

ffmmttcchheecckk - sanitizes user-supplied printf(3)-style format string

LLIIBBRRAARRYY

Standard C Library (libc, -lc)

SYNOPSIS

##iinncclluuddee <>

const char * ffmmttcchheecckk(const char *fmtsuspect, const char *fmtdefault);

DESCRIPTION

The ffmmttcchheecckk() scans fmtsuspect and fmtdefault to determine if fmtsuspect will consume the same argument types as fmtdefault and to ensure that fmtsuspect is a valid format string. The printf(3) family of functions cannot verify the types of arguments

that they are passed at run-time. In some cases, like catgets(3), it is

useful or necessary to use a user-supplied format string with no guaran-

tee that the format string matches the specified arguments. The ffmmttcchheecckk() was designed to be used in these cases, as in:

printf(fmtcheck(userformat, standardformat), arg1, arg2);

In the check, field widths, fillers, precisions, etc. are ignored (unless the field width or precision is an asterisk `*' instead of a digit string). Also, any text other than the format specifiers is completely ignored.

RETURN VALUES

If fmtsuspect is a valid format and consumes the same argument types as fmtdefault, then the ffmmttcchheecckk() will return fmtsuspect. Otherwise, it will return fmtdefault. SSEECCUURRIITTYY CCOONNSSIIDDEERRAATTIIOONNSS Note that the formats may be quite different as long as they accept the

same arguments. For example, "%p %o %30s %#llx %-10.*e %n" is compatible

with "This number %lu %d%% and string %s has %qd numbers and %.*g floats

(%n)". However, "%o" is not equivalent to "%lx" because the first

requires an integer and the second requires a long.

SEE ALSO

printf(3)

BUGS

The ffmmttcchheecckk() function does not understand all of the conversions that printf(3) does. BSD October 16, 2002 BSD




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™