Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Jul 2018 23:55:18 +0000 (UTC)
From:      Conrad Meyer <cem@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r336852 - head/lib/libc/gen
Message-ID:  <201807282355.w6SNtIZB039784@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: cem
Date: Sat Jul 28 23:55:18 2018
New Revision: 336852
URL: https://svnweb.freebsd.org/changeset/base/336852

Log:
  exec.3: Add BUGS section and document non-FreeBSD portability
  
  Requested by:	kib (in part)

Modified:
  head/lib/libc/gen/exec.3

Modified: head/lib/libc/gen/exec.3
==============================================================================
--- head/lib/libc/gen/exec.3	Sat Jul 28 23:47:22 2018	(r336851)
+++ head/lib/libc/gen/exec.3	Sat Jul 28 23:55:18 2018	(r336852)
@@ -314,3 +314,55 @@ The
 .Fn execvP
 function first appeared in
 .Fx 5.2 .
+.Sh BUGS
+The type of the
+.Fa argv
+and
+.Fa envp
+parameters to
+.Fn execle ,
+.Fn exect ,
+.Fn execv ,
+.Fn execvp ,
+and
+.Fn execvP
+is a historical accident and no sane implementation should modify the provided
+strings.
+The bogus parameter types trigger false positives from
+.Li const
+correctness analyzers.
+On
+.Fx ,
+the
+.Fn __DECONST
+macro may be used to work around this limitation.
+.Pp
+Due to a fluke of the C standard, on platforms other than
+.Fx
+the definition of
+.Dv NULL
+may be the untyped number zero, rather than a
+.Ad (void *)0
+expression.
+To distinguish the concepts, they are referred to as a
+.Dq null pointer constant
+and a
+.Dq null pointer ,
+respectively.
+On exotic computer architectures that
+.Fx
+does not support, the null pointer constant and null pointer may have a
+different representation.
+In general, where this document and others reference a
+.Dv NULL
+value, they actually imply a null pointer.
+E.g., for portability to non-FreeBSD operating systems on exotic computer
+architectures, one may use
+.Li (char *)NULL
+in place of
+.Dv NULL
+when invoking
+.Fn execl ,
+.Fn execle ,
+and
+.Fn execlp .



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807282355.w6SNtIZB039784>