- ベストアンサー
関数ライブラリ一覧
C言語の関数一覧のようなものは何を見たらわかるのでしょうか? 標準関数の一覧はよく見かけますが、ほかの関数の一覧はないのでしょうか? たとえば、あるインターネット上で公開されていたソースコードには #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netdb.h> #include <netinet/in.h> #include <sys/param.h> #include <sys/uio.h> #include <unistd.h> と書いてありました。 上3つは標準ライブラリにかいてありますが、その他は載ってません。 こういったsys/uio.hなどの仕様はどこで見れるのでしょうか? よろしお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
思っていたより初心者の方のようですね。 下でコンパイラベンダーと書きましたが、コンパイラ開発元という意味です。他に分からない単語があればオンライン辞書などを参考に調べながら読んで下さい。 >JavaのAPIリファレンスのようなまとまったリファレンスはないのでしょうか? Javaはsun microsystemsが開発したプログラミング言語です。sunのサイトにJavaのAPIリファレンスがあるのは当然です。JAVA1.1の頃の話ですが、XMLPerserやCryptoAPI等のサードパーティー製クラスライブラリのAPIについてはsunのサイトにはなかったと思います。 で、同様に、Cの関数についても調べたい機能があればライブラリの開発元の解説をお読み下さい。ご提示のソースコードはUnix系OSのソケット関連です。ライセンスはOSに取り込まれてますので、OSのマニュアルを参照して下さい。 C言語の関数が全て載ったマニュアルなりサイトなりがないか、という質問なら、答えは「ありません」。 >ヘッダーファイルを読もうにも、どのヘッダーファイルにどのような関数が定義されているかわからないのです。 他の方も言ってますが、逆です。 『こんな機能がないかな』と思ったら、ヘルプなりgoogleなりで検索して、当てはまりそうな関数を見つけたらその関数についての解説を読んで、その関数を使うにはどのヘッダーが必要かを知る。 普通はその解説に引数や型も載ってるので、ヘッダーファイルを読んだりはしません。 下の回答はもうちょっと上級の方を想定してました。
その他の回答 (4)
- corocoro1616
- ベストアンサー率13% (12/87)
>一応「C言語 関数一覧」などのキーワードで自分で調べてみたのですが へ?本気で調べる気ありますか? ヘッダーファイル名で調べないのは何故? 普通知りたいファイル名で調べるのは 常識中の常識でしょ。 >ヘッダーファイルの一覧が、リファレンスのようにまとまっているサイトや文書などがないか、ということです。 だからなんでヘッダーファイル一覧が必要なわけ? 大事なのは関数でしょ。 とりあえず標準関数に関しては ANSIのC言語辞書一冊買いなさい。 >このヘッダーファイルにはこのような機能をもつ関数群が定義されている、というような一覧というのはないのでしょうか? 普通は逆 必要な関数を調べてからそれに必要なヘッダーファイルを インクルードするだけ 質問者はプログラミングという作業に向いてない 人なのかもしれませんね。 なにをやるにも明後日のことをしている。 検索方法にしても 関数とヘッダーファイルの関係にしても 関数自身ではなくてヘッダーファイルを 何故か優先したり 今後の事(学業/就職)も含めて真剣に考え直した方が いいかもしれませんね。
- a-saitoh
- ベストアンサー率30% (524/1722)
このヘッダファイルを見る限り,Solariis/Linux/BSDのごく普通のもののようです. UNIXのマニュアルページやマニュアルページの目次がオンラインで読めるWEBサイトはあちこちにありますから,それでみれば関数一覧もあります. ちなみに,システムコールは2章,ユーザランドライブラリは3章です. たとえば,uioに関しては,FreeBSDならマニュアルの9章のuioのセクションに多少書かれています.ヘッダファイルの内容の仕様についてはどこにも書かれてないと思います.プログラム作成上は,「○○という関数を使うには□□というヘッダをインクルードして△△というstructを使う」ってことさえ分かれば足りるので.
お礼
回答ありがとうございます。 OSによって使用する関数が違うんですね。 最初にJavaを勉強していたので、てっきりみんな一緒だとおもっていました。
- yulali
- ベストアンサー率45% (29/64)
標準関数っていっても自分で作る関数と何も変わりません。 Cコンパイラは世に沢山ありまして、標準関数っていうのは、どのCコンパイラ(C言語)でも最低限これだけは最初から使えるよっていう関数のことです。ANSIが決めました。ANSIっていうのは米国版JISです。 >標準関数の一覧はよく見かけますが、ほかの関数の一覧はないのでしょうか? 引数や型は、ヘッダーファイルを読みましょう。 解説はOSやコンパイラベンダーのヘルプを読みましょう。(linuxならman、VisualCならMSDNライブラリ) >たとえば、あるインターネット上で公開されていたソースコードには linuxのコードですね。 http://www.linux.or.jp/JM/INDEX/ldp.html
お礼
回答ありがとうございます。 >引数や型は、ヘッダーファイルを読みましょう。 ヘッダーファイルを読もうにも、どのヘッダーファイルにどのような関数が定義されているかわからないのです。 たとえば、このヘッダーファイルにはこのような機能をもつ関数群が定義されている、というような一覧というのはないのでしょうか? また、引数や型をしらべるにはヘッダーファイルを読む以外に方法はないのでしょうか? JavaのAPIリファレンスのようなまとまったリファレンスはないのでしょうか?
- corocoro1616
- ベストアンサー率13% (12/87)
http://www.google.co.jp/ ここで調べる。 そもそもヘッダーファイルの仕様なんて調べてどうするの? 仕組みを知りたいの? だったら自分で調べる事しないと 普通は関数あってのヘッダー その関数がどのヘッダーファイルを必要としているかが 問題でしょ。
お礼
回答ありがとうございます。 一応「C言語 関数一覧」などのキーワードで自分で調べてみたのですが、出てくるのは標準関数ばかりで質問で書いたようなヘッダーファイルの中にある関数の説明や、その一覧などが見つからなかったため、質問させていただきました。 >そもそもヘッダーファイルの仕様なんて調べてどうするの? 質問の表現が正しくありませんでしたね。申し訳ないです。 僕が知りたいことは、SunのサイトにあるJavaのAPIリファレンスのように関数の一覧とその仕様、その関数が定義されているヘッダーファイルの一覧が、リファレンスのようにまとまっているサイトや文書などがないか、ということです。 学校で、基本的な文法や標準関数の使い方などは教わったので、ネットワークを使ったりするプログラムを作ってみたいと思っています。 それでインターネット上のソースコードを見ていたのですが、どうやら発展的なプログラムを作る際には標準関数以外のものを使いわないといけないようなので、それらの一覧を探しているといます。
お礼
回答ありがとうございます。 OSによって使用する関数が違うんですね。 最初にJavaを勉強していたので、てっきりみんな一緒だとおもっていました。 OSごとに関数が異なると調べるのも大変ですね。