DPRINTF(3) Linux Programmer's Manual DPRINTF(3)
dprintf, vdprintf - ファイルディスクリプターに文字出力する
#define _GNU_SOURCE
#include <stdio.h>
int dprintf(int fd, const char *format, ...);
int vdprintf(int fd, const char *format, va_list ap);
(glibc2 ライブラリにおける) dprintf() 関数と vdprintf()
関数とは、それぞれ fprintf(3) 関数と vfprintf(3)
関数とにちょうど対応するが、 これらは
(前もって与えられたストリームではなく) ファイルディスクリプター fd
に対して出力を行う。
これらの関数は GNU による拡張である。
これらの関数は GNU の拡張であり、C や POSIX のものではない。
見てわかるとおり、名前の付け方はあまり良くない。 多くのシステム (MacOS
など) には、 dprintf() という名前の、これとは互換でない関数があり、
たいていはなんらかのデバッグ用の printf(3) になっている。プロトタイプは
void dprintf(int level, const char *format, ...);
で、最初のパラメータはデバッグレベルになっている (また出力は stderr
に行われる)。 さらに、 dprintf() (あるいは DPRINTF) はデバッグ処理用の
printf のマクロとしても良く用いられる。 したがって恐らく、移植-
を必要とするプログラムでは、 この関数は用いないほうが良いだろう。
より良い名前は fdprintf() だったかと思われる。
printf(3), feature_test_macros(7)
GNU 2001-12-18 DPRINTF(3)