• ベストアンサー

C標準ライブラリ場所

いつもお世話になっております。 printfとfgetsのソースコードが見たいのですが、 ライブラリのファイル名をご存知の方がいらっしゃいましたら何卒ご教授下さい。 また他の関数のソースを探すコツなどもご存知でいらっしゃいましたら重ねてお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

OSは何ですか? 質問カテゴリからはBSD系だと言うことしか分からないのですが、、、。でも、おそらく、printf.cとfgets.cです。 Cプログラム開発の際、普通は、libc.soを使いますが、システムのどこかにlibc.aもあるはずです。/usr/libあたりにないでしょうか。 # nm -a /usr/lib/libc.a などとすると、ファイル名とその中で定義されている外部名がリストされます。たとえば、 (略) printf.o: 00000000 t 00000000 a 00000000 d 00000000 b 00000000 ? 00000000 ? 00000000 a 00000000 a 00000000 a U __sF 00000000 T printf U vfprintf (以下略) これをみると、printf.oのなかでprintf()が定義されていることがわかります。また、printfは下請け関数としてvfprintdを呼び出しているらしいことが分かります。 標準的なソースの置き場所は、/usr/src/lib/libc/stdio (これはNetBSDでの例)あたりだとおもいますよ。

mirror-name
質問者

お礼

お返事有難うございます。FreeBSDでしたが同じ場所にありました。貴重なことをお教えいただき有難う御座いました。

関連するQ&A

専門家に質問してみよう