- ベストアンサー
C標準ライブラリ場所
いつもお世話になっております。 printfとfgetsのソースコードが見たいのですが、 ライブラリのファイル名をご存知の方がいらっしゃいましたら何卒ご教授下さい。 また他の関数のソースを探すコツなどもご存知でいらっしゃいましたら重ねてお願いいたします。
- みんなの回答 (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での例)あたりだとおもいますよ。
お礼
お返事有難うございます。FreeBSDでしたが同じ場所にありました。貴重なことをお教えいただき有難う御座いました。