• ベストアンサー

printfなど、標準関数のソースコードが知りたい

C言語、Linux初心者です。 タイトルの通り、printf, scanfなどの関数のソースコードや、main関数の呼出し部分のソースコードを見てみたいのですが、どこにあるのでしょうか。類似質問で http://www.gnu.org/home.ja.html から探せるとの回答がありましたが、出来ればもう少し具体的にお願いします。 RedHat Linux 7.3、gcc version 2.96を使っています。

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

  • ベストアンサー
回答No.3

Linuxで用いられる「GNU Cライブラリ」(libc、glibc)はこちらです。http://www.gnu.org/software/libc/libc.html http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/?cvsroot=glibc 例えばprintfは、この中の「stdio」という部分に含まれます。 http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdio/Attic/?cvsroot=glibc リストの中の改訂番号(Rev.)をクリックすればソースが見られます。 mainの呼び出し部分については残念ながら詳しくありません。

参考URL:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/stdio/Attic/?cvsroot=glibc
anisol
質問者

お礼

これです!なかなか見つけられなくて…。ありがとうございました。mainの呼出し部分については少し待って回答がないようであれば、別質問にするかも知れません。

その他の回答 (2)

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

プログラムの中で printf などと使われた場合、 コンパイラが処理して 機械語に変換します。 その変換された アセンブラが 知りたいということなのでしょうか? それとも、コンパイラが 変換するところのソースが見たいというのでしょうか?

anisol
質問者

補足

ソースの方です。この質問で聞かれていたものです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=467057 見ても自分には理解できないと思いますが、こういう基本的な部分を見ておかないと安心できないたちなもので。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

質問にかかれているHPから 参考URLのHPにいけました。 参考URLにある Source tarballの sh-utils-2.0.tar.gz というファイルをDLして解凍してみると src というフォルダに printf.c というファイルが ありました。 これのことなのかな? あ、scanfは そこには なかったですね。 んで scanfを検索すると http://www.gnu.org/directory/libbinio.html と出ました。 なお検索するのは http://www.gnu.org/directory/GNU/ で します。

参考URL:
http://www.gnu.org/directory/shellutils.html
anisol
質問者

補足

回答ありがとうございます。このprintfはシェルコマンドのほうのprintf(man 1 printfでマニュアルが出てくるほう)で、関数ではないようです。scanfのほうもちょっと見た限り違うようです。

関連するQ&A