人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Linuxのopen(2)のマニュアルを見ると、

int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);

の2つの形式があります。C言語では関数のオーバーロードはできないと思っているのですが、これは一体どういうことなのでしょうか? GNU CあるいはC99で関数のオーバーロードをサポートしたということなのでしょうか?


●質問者: そーり
●カテゴリ:コンピュータ
✍キーワード:Char const C言語 GNU Linux
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● zzz_1980
●60ポイント ベストアンサー

プロトタイプ宣言(CentOS5.2で確認)は

int open(const char *, int , ...);

になっています。要するに引数は2個でも3個でも(それ以上でも)構わない。

FreeBSD 7-Stable の open(2)は、最初から

SYNOPSIS
 #include <fcntl.h>
 int
 open(const char *path, int flags, ...);

と書かれています。

url はだみーです。

http://q.hatena.ne.jp

◎質問者からの返答

ありがとうございます。私も今、APUEでopen(2)の第3引数以降が可変長引数であることを確認したところです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ