C言語の本を久しぶりに読み返しているのですが、インターポジショニング(interpose, interposition)なる言葉を初めて知ったのでメモです。 「C標準ライブラリ関数などをローカル定義の関数で上書きできてしまう」というお話です。うっかりやらかすとバグの温床になるのですが、うまく使えばユニットテストのスタブとして便利そう。 time関数についておさらい 例として思いついたので、time(3)を上書きしてみます。 time(3)は現在時刻をUNIX time(time_t型)で取得するC標準ライブラリ付属の関数です。詳細はman 3 timeで。この関数、実行時間によって結果が常に異なるわけで、ユニットテストの時は困り者です。 /* time_ex.c */ #include <stdio.h> #include <time.h> int main(void) { printf(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く