Back to index

glibc  2.9
Functions
fcntl2.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int __open_2 (__const char *__path, int __oflag) __nonnull((1))
int __REDIRECT (__open_alias,(__const char *__path, int __oflag,...), open) __nonnull((1))
 __errordecl (__open_too_many_args,"open can be called either with 2 or 3 arguments, not more")
 __errordecl (__open_missing_mode,"open with O_CREAT in second argument needs 3 arguments")
__extern_always_inline int open (__const char *__path, int __oflag,...)

Function Documentation

__errordecl ( __open_too_many_args  ,
"open can be called either with 2 or 3  arguments,
not more"   
)
__errordecl ( __open_missing_mode  ,
"open with O_CREAT in second argument needs 3 arguments  
)
int __open_2 ( __const char *  __path,
int  __oflag 
)

Here is the caller graph for this function:

int __REDIRECT ( __open_alias  ,
(__const char *__path, int __oflag,...)  ,
open   
)
__extern_always_inline int open ( __const char *  __path,
int  __oflag,
  ... 
)

Definition at line 42 of file fcntl2.h.

{
  if (__va_arg_pack_len () > 1)
    __open_too_many_args ();

  if (__builtin_constant_p (__oflag))
    {
      if ((__oflag & O_CREAT) != 0 && __va_arg_pack_len () < 1)
       {
         __open_missing_mode ();
         return __open_2 (__path, __oflag);
       }
      return __open_alias (__path, __oflag, __va_arg_pack ());
    }

  if (__va_arg_pack_len () < 1)
    return __open_2 (__path, __oflag);

  return __open_alias (__path, __oflag, __va_arg_pack ());
}

Here is the call graph for this function: