スタックオーバーフローの皆さん、よろしくお願いします!
fpirntf() を XNU カーネル tcp_xxx.c ファイルに追加しようとしているので、TCP が移動するときにパラメーターをファイルに出力して、TCP の動作をよりよく理解できるようになりますが、次のような致命的なエラーが発生します。
$ sudo make ARCH_CONFIGS=X86_64 KERNEL_CONFIGS=DEBUG
CC tcp_output.o
/Users/wangweikai/Desktop/xnubuilder/xnu-2422.90.20/bsd/netinet/tcp_output.c:135:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^
1 error generated.
make[7]: *** [tcp_output.o] Error 1
make[6]: *** [build_all] Error 2
make[5]: *** [do_all] Error 2
make[4]: *** [build_all] Error 2
make[3]: *** [build_all_recurse_into_conf] Error 2
make[2]: *** [build_all_recurse_into_bsd] Error 2
make[1]: *** [build_all_bootstrap_DEBUG^X86_64^NONE] Error 2
make: *** [all] Error 2
xnu ソース コードに stdio.h がないように見えます。これを解決するために、xcode 5.0.2 を再インストールし (これのみが xnu-2422 で動作します)、ブート可能な mach_kernel を出力しました。ターミナルで「xcode-select --install」でコマンドラインツールをインストールしようとしましたが、どちらも機能しませんでした。ところで、#include なしで printf() を追加してもエラーは発生しません。印刷関数は stdio.h 以外の名前のファイルで定義されているようです。
私のポイントはTCPパラメータ(輻輳ウィンドウサイズや次のシーケンス番号など)がファイルにどのように変化するかを記録することなので、これを行う方法があれば教えてください.xnuとCはまったく初めてです.プログラミング。
よろしくお願いします。