2021年08月04日 更新

printfの定義を探す

どうも、クラゲジュニアです。

概要

C言語で使用されているprintfがどこで定義されているかを探す方法です。

Let's find

プログラムの作成

#include "stdio.h"

int main(void)
{
    printf("Hello world\n");
}

Hオプション

gccでコンパイルする時に-Hオプションをつけるとincludeしているヘッダーファイルのパスが表示されます。

gcc -H main.c

stdioを取り出す

今のままだと全てのヘッダーファイルのパスが表示されてしまうのでコマンドで加工します。

gcc -H main.c 2> log; cat log | grep stdio

stdio.hが見つかりました。

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/stdio.h

定義

ファイル内にprintfの定義がありました。

以上です。