dprintf - ライブラリコールの説明 - Linux コマンド集 一覧表
名前
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 ()関数と vfprintf ()関数とにちょうど対応するが、 これらは (前もって与えられたストリームではなく) ファイルディスクリプター fd に対して出力を行う。
注意
これらの関数は GNU の拡張であり、C や POSIX のものではない。
見てわかるとおり、名前の付け方はあまり良くない。
多くのシステム (MacOS など) には、
dprintf
()という名前の、これとは互換でない関数があり、
たいていはなんらかのデバッグ用の
printf
()になっている。プロトタイプは
void dprintf (int level, const char *
format
, ...);
で、最初のパラメータはデバッグレベルになっている
(また出力は
stderr
に行われる)。
さらに、
dprintf
()(あるいは
DPRINTF
)はデバッグ処理用の printf のマクロとしても良く用いられる。
したがって恐らく、移植性を必要とするプログラムでは、
この関数は用いないほうが良いだろう。
より良い名前は
fdprintf
()だったかと思われる。
準拠
これらの関数は GNU による拡張である。