ただし、マクロを使用せずに、すべての printf ステートメントを条件付きでミュートする方法はありますか? 既存のコードに触れずにミュートを実行したいのですが、モジュールに行を追加して、ソースコードに既に存在するすべてのprintfを単に無効にします。
ありがとう!
ただし、マクロを使用せずに、すべての printf ステートメントを条件付きでミュートする方法はありますか? 既存のコードに触れずにミュートを実行したいのですが、モジュールに行を追加して、ソースコードに既に存在するすべてのprintfを単に無効にします。
ありがとう!
、、などをstdout
介してすべての出力を無効にしたい場合は、ビットバケットにリダイレクトするために使用できます。printf
puts
putchar
freopen(3)
// On Unix and Unix-like systems:
freopen("/dev/null", "w", stdout);
// On Windows:
freopen("NUL", "w", stdout);
Linux、BSD、またはその他の Unix では、独自printf
の C ライブラリを提供してラップする共有ライブラリを作成できますprintf
。
次に、次を使用してCライブラリの前にロードしますLD_PRELOAD=mylib.so ./myprogram
これをソース コードに追加して、ライブラリ printf を独自の実装に置き換えます。
int printf(const char * restrict format,...) { return 0; }