質問

質問者:iruka0913 プログラミング言語のAPI
困り度:
  • 困っています
プログラミング言語の『API』にあたるものって具体的には何なのでしょうか?

例えば,C言語の場合『API』にあたるのはprintfやscanfなどの『標準関数全体』という解釈で合っているのでしょうか?


また,ライブラリとAPIの関係についても教えていただけると嬉しいです.

読んだ本の中で少し触れられていたのですが,表現が曖昧であまりよく分かりませんでした・・・.
質問投稿日時:08/12/30 00:32
質問番号:4592292
最新から表示回答順に表示

回答

 

回答者:tomtom963 >他のサイトからの丸ごとの引用は禁止事項です
http://blog.goo.ne.jp/oshietegoo/c/2fd47a0436464f7e861d622ad803e8ab
どこにありますか?
引用はわかるようにしておけば問題ないはずですけど
> 原著作物が公表されているものであること。
> 出所が明示されていること。
> 改変がされていないこと。
> 引用することに必然性があること。
> 本文と引用文の区別が明確であること。
> 本文が主、引用文が従の関係にあり、引用の量が正当な範囲内(本文よりも短いもの)であること。
最後の一文だと半々くらいで微妙なのかな?

>> printfと言うよりそこからさらに先が API
>とは矛盾してますね。訂正を出しておいてください。(削除対象だから訂正しても無意味?)
あっごめんね。
言葉足らずだった
printfと言うよりprintfとそこからさらに先が API
って書いた方がよかったね。
(printfとそこからOS側にわたって描画されるまでの部分って意味で)

>あっちこっちで議論をふっかけて混乱させるのも自粛してもらいたいものです。
で君の間違いを認めないのはいいの?
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:08/12/30 02:25
回答番号:No.5
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:GOOD-Fr 他のサイトからの丸ごとの引用は禁止事項です。ご自身で削除申請しておいてください。それから、あっちこっちで議論をふっかけて混乱させるのも自粛してもらいたいものです。

それにしても
> 例えば(Cの)ライブラリのAPIは関数やマクロです。
と書いてるわりには
> printfと言うよりそこからさらに先が API
とは矛盾してますね。訂正を出しておいてください。(削除対象だから訂正しても無意味?)

参照 URL もとんちんかんです。検索して最初にヒットしたページをまる写しするだけではなくて、「回答」しましょう。質問箱に「人間検索エンジン」は不要です。さようなら。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/12/30 02:14
回答番号:No.4
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:tomtom963 >API というのは、OS が提供しているもので
って訳ではない。
そりゃWin32APIはOSが提供している物だけど
まぁ定番で言えばWebAPIとか各種データベースへの接続用APIとか

http://jibun.atmarkit.co.jp/lskill01/rensai/fulinux/02/02.html
>API(Application Programming Interface)というのは、何かを使ってプログラミングするときのインターフェイスのことを指します。例えば(Cの)ライブラリのAPIは関数やマクロです。

>システムコールと呼ぶこともありますね。
http://jibun.atmarkit.co.jp/lskill01/rensai/fulinux/02/02.html
>この言葉は本来「WindowsというOSの、Win32サブシステムのAPI」という意味で、その中にはシステムコール以外のものもたくさん含まれているのですが、なぜかシステムコールと同じものと解釈されてしまうことがあります。
>カーネルのAPIはシステムコールです。

もっともAPIの正式名称である
Application Programming Interface
考えればOSだけって事にはならないことがすぐにわかりますね。


で上記のことを念頭に置いて考えた場合
>質問が誤ってます。
質問は誤っていません。
>「プログラミング言語のAPI」という言葉は普通使いません。
という言葉も使っても問題無いでしょう。
種類:回答
どんな人:一般人
自信:自信あり
回答日時:08/12/30 01:54
回答番号:No.3
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:GOOD-Fr 質問が誤ってます。

「プログラミング言語のAPI」という言葉は普通使いません。
API というのは、OS が提供しているものでプログラミング言語とは直接関係ありません。システムコールと呼ぶこともありますね。

プログラミング言語は一般的にライブラリを用意していますが、ライブラリの一部は API を呼び出しています。が、API とまったく無関係なライブラリもあります。某社の Windows では、OS が提供している API と言語から呼び出せる API とライブラリがごちゃまぜになっています。が、こういう「ごちゃまぜ」のシステムは Windows ぐらいしかありません。ちゃんとした OS は API をきちんと定義してありますし、その API は手順さえ守ればどの言語からでも呼び出し可能です。

ですので、「プログラミング言語の API」という言い方は「ない」という解釈でよいと思います。

余談ですが、「C言語の API」なるものが存在すると仮定して、ちゃんと理解したいのなら「C言語以外の API」を調べたほうがいいです。当然、「C言語以外の API」は C言語を含まないはずですから、「C言語の API」と「C言語以外の API」を理解すれば、どの部分が C言語で、どの部分が API か、自然と理解できると思います。(「C言語の API」という言葉はないので、今回は無理ですが・・・。「C言語のライブラリ」なら、できるわけか)
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/12/30 01:24
回答番号:No.2
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:tomtom963 http://ja.wikipedia.org/wiki/Application_Programming_Interface
printfと言うよりそこからさらに先にある部分も含めたところから
APIと言うのが正しいと思いますよ。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/12/30 00:37
回答番号:No.1
この回答への補足この回答に補足をつける(質問者のみ)
この回答へのお礼この回答にお礼をつける(質問者のみ)
最新から表示回答順に表示