荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (?!??!!!), 信区: Linux
标  题: Re: open()函数有三种形式,但C又不支持重载...why?
发信站: 荔园晨风BBS站 (Sat Nov 30 22:29:23 2002), 转信

不要忘记C语言还有一个变长参数的,就像printf的参数也可以变的。
unix的open的源码如下:
#include <fcntl.h>
#include <stdarg.h>
#include <unistd.h>

int
__open (const char *file, int oflag, ...)
{
  int mode = 0;

  if (oflag & O_CREAT)
    {
      va_list arg;
      va_start (arg, oflag);
      mode = va_arg (arg, int);
      va_end (arg);
    }

  return open (file, oflag, mode);
}
strong_alias (__open, __libc_open)
【 在 cycker (重新开始) 的大作中提到: 】
: 奇怪.


--
     ~
   ' v '
  //   \\              ←--这个是企鹅
 /(     )\
   ^ ~ ^

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.234]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店