dprintf

Autres langues

Langue: ja

Version: 2001-12-18 (fedora - 25/11/07)

Section: 3 (Bibliothèques de fonctions)

名前

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)