C言語でstdoutをbinモードにするには?

[上に] [前に] [次に]
市職員 2000/03/14(火) 13:16:23
C言語のCGIで標準出力(stdout)に画像を出力したいのですが、
既に開かれているstdoutをバイナリモードにする方法が分かりません。
ファイルに吐くならfopen("hoge.gif", "wb");でいいのですが、
同じことをstdoutでやるにはどうしたらいいのでしょうか?

フシギダネ 2000/03/14(火) 13:22:11
fwriteでstdoutに出力。

市職員 2000/03/14(火) 13:37:25
さっそくのご回答ありがとうございます。
でも、それではダメなんです。
binで書き込む方法ではなく、stdoutをbinでopenする方法がしりたいのです。
具体的には、GDライブラリを使用して、
gdImageGd(gdImagePtr im, FILE *out)
のoutにstdoutを指定したいわけです。
本来は
out = fopen("image.gif", "wb");
gdImageGd(im, out);
とするところを、
gdImageGd(im, stdout);
にしたいのでしうが、Windowsだと正常に出力されないのです。
分かる方いましたらお願いいたします。

wai 2000/03/14(火) 16:24:33
はじめまして。 たぶん

#include    <stdio.h>
#include    <fcntl.h>
#include    <io.h>


int main(void)
{

    if (0 > _setmode( _fileno(stdout), _O_BINARY))
        printf("NG\n");
    else
        printf("OK\n");

    return 0;
}

でバイナリモードになると思うのですが。

[上に] [前に] [次に]