From: "Michael Kerrisk (man-pages)" <mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: Janne Blomqvist
<blomqvist.janne-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Clarification for mkostemp/mkostemps man page
Date: Sat, 28 Dec 2013 23:59:56 +1300 [thread overview]
Message-ID: <52BEAF2C.1050906@gmail.com> (raw)
In-Reply-To: <CAO9iq9FDnF+VmDq-vtrSC-kYXf+t12EmOrJDEWdGTOqN2vX-xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Hello Janne,
On 12/17/13 20:56, Janne Blomqvist wrote:
> Hello,
>
> currently the man page for mkostemp/mkostemps says
>
> """The mkostemp() function is like mkstemp(), with the difference that
> flags as for open(2) may be specified in flags (e.g., O_APPEND,
> O_SYNC)."""
>
> To be more precise, the implementation massages the flags argument as follows:
>
> (flags & ~O_ACCMODE) | O_RDWR | O_CREAT | O_EXCL
>
> That is, there is no need to explicitly include O_RDWR | O_CREAT |
> O_EXCL in flags, as it's added implicitly.
>
> So I suggest that the manpage should instead state that *additional*
> flags may be specified in the flags argument.
>
> This issue is a potential portability problem. FreeBSD 10+ also has
> mkostemp{s}, but generates an error if O_RDWR | O_CREAT | O_EXCL is
> present instead of silently accepting it. While annoying, this
> difference in behavior seems Ok by the proposed addition of mkostemp
> to some future POSIX standard, see
>
> http://austingroupbugs.net/view.php?id=411
>
> """
> The mkostemp( ) function shall be equivalent to the mkstemp( )
> function, except that the flag argument may contain additional flags
> (from <fcntl.h>) to be used as if by open( ). Behavior is unspecified
> if the flag argument contains more than the following flags:
>
> O_APPEND Set append mode.
>
> O_CLOEXEC Set the FD_CLOEXEC file descriptor flag.
>
> <SIO>O_DSYNC Write according to the synchronized I/O data integrity
> completion.</SIO>
>
> <SIO>O_RSYNC Synchronized read I/O operations.</SIO>
>
> <XSI|SIO>O_SYNC Write according to synchronized I/O file integrity
> completion.</XSI|SIO>
> """
Thank you for the very detailed report. I applied the patch below. Okay?
Cheers,
Michael
diff --git a/man3/mkstemp.3 b/man3/mkstemp.3
index 40cd7e6..d2367bb 100644
--- a/man3/mkstemp.3
+++ b/man3/mkstemp.3
@@ -101,13 +101,32 @@ The
.BR mkostemp ()
function is like
.BR mkstemp (),
-with the difference that flags as for
-.BR open (2)
-may be specified in
-.IR flags
-(e.g.,
+with the difference that the following bits\(emwith the same meaning as for
+.BR open (2)\(emmay
+be specified in
+.IR flags :
.BR O_APPEND ,
-.BR O_SYNC ).
+.BR O_CLOEXEC ,
+and
+.BR O_SYNC .
+Note that when creating the file,
+.BR mkostemp ()
+includes the values
+.BR O_RDWR ,
+.BR O_CREAT ,
+and
+.BR O_EXCL
+in the
+.I flags
+argument given to
+.BR open (2);
+including these values in the
+.I flags
+argument given to
+.BR mkostemp ()
+is unnecessary, and produces errors on some
+.\" Reportedly, FreeBSD
+systems.
The
.BR mkstemps ()
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-12-28 10:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-17 7:56 Clarification for mkostemp/mkostemps man page Janne Blomqvist
[not found] ` <CAO9iq9FDnF+VmDq-vtrSC-kYXf+t12EmOrJDEWdGTOqN2vX-xg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-12-28 10:59 ` Michael Kerrisk (man-pages) [this message]
[not found] ` <52BEAF2C.1050906-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-01-05 7:53 ` Janne Blomqvist
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52BEAF2C.1050906@gmail.com \
--to=mtk.manpages-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=blomqvist.janne-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.