Herbert Rosenau said:
What has POSIX to do with the C standard?
POSIX is based on the C standard.
<ON-TOPIC>
A secondary standard, or a particular implementation, is allowed to
impose additional requirements not imposed by the C standard itself.
In particular, it may define the behavior of constructs whose behavior
is undefined by the C standard. For example, a function that returns
a void* intended to be used as a function pointer cannot be portable,
but it can be specified by a secondary standard or by a particular
implementation. Any code that uses such a function is portable only
to that implementation, or to systems that support that secondary
standard.
</ON-TOPIC>
<OFF-TOPIC>
The dlsym() function specified by POSIX is an example of this.
May be, may be not, bot this group has nothing to do with POSIX at
all. When POSIX is not standard compilant then it is completely off
topic here.
I'm not convinced it's *completely* off-topic. I'd say it's topical
to the extent that it illustrates a point about extensions. The
standard explicitly permits extensions, after all.
But even if it's completely off-topic, it would have been better to
point out that it's off-topic rather than to pretend that the phrase
"on a POSIX system" wasn't there.
You response:
No. void* may even not wide enough to hold an address of a function.
is true in the context of standard C, but the question was clearly
limited to the context of POSIX systems. In effect, you responded to
an off-topic question with a response that was both off-topic and
incorrect.