Thread (18 messages) flat view 18 messages, 5 authors, 2016-06-15

Re: [PATCH/WIP 1/8] wrapper: implement xopen()

From: Paul Tan <hidden>
Date: 2016-06-15 23:05:07

On Thu, May 28, 2015 at 5:53 AM, Jeff King [off-list ref] wrote:
On Wed, May 27, 2015 at 09:03:47PM +0200, Torsten Bögershausen wrote:
quoted
The original open can take 2 or 3 parameters, how about this:
int xopen(const char *path, int oflag, ... )
{
        va_list params;
        int mode;
        int fd;

        va_start(params, oflag);
        mode = va_arg(params, int);
        va_end(params);

        fd = open(path, oflag, mode);
Don't you need a conditional on pulling the mode arg off the stack
(i.e., if O_CREAT is in the flags)?
Yeah, we do, as va_arg()'s behavior is undefined if we do not have the
next argument.

The POSIX spec[1] only mentions O_CREAT as requiring the extra
argument, so I guess we'll only need to check for that.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html

Thanks,
Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help