Article View: fj.sources.d
Article #207Re: ppmtogif-noLZW.c
From: IIJIMA Hiromitsu
Date: Fri, 19 Oct 2001 16:20
Date: Fri, 19 Oct 2001 16:20
42 lines
3497 bytes
3497 bytes
いいじまです。
そろそろ Followup-to: fj.comp.lang.c としましょう。
元記事は、stdin から PPM ファイルを受け取って stdout に
GIF ファイルを吐き出すフィルタのソース(C で書かれています)に
対して、私が「Windows で動かしたいから binmode STDIN; binmode
STDOUT; 相当のことをしてほしい」と注文した、という経緯で、
その実装方法についてモメています。
実際のソースは再掲しませんので References: をたどってください。
> > DOSでコンパイラを使ったことないんでわからんのですけど、
> > CだとUNIXのプログラムの移植が多いですから、最近のコンパイラだったら
> > stdioはバイナリ扱いするみたいなオプションがあったりしません?
> >
> > わざわざ "b" でstdioを開き直している例を見たことないので…
>
> MSVC の例で恐縮ですが
> http://www.microsoft.com/japan/developer/library/vccore/_crt__setmode.htm
>
> 先頭にアンダースコア付きの関数ですので、ベンダごとに追加された関数の
> 可能性が巨大です。他のコンパイラシステムでは、必ずしもこの関数が存在して
> いるとは限りません。
ここで紹介されている _setmode() は MS only なようですね。
LSI C-86 にはないですし(といっても、stdio.h を読む限りでは
stdin->mode |= _BINARY; で簡単に実現できそうだけど)、
FreeBSD では setmode() はぜんぜん別の目的の関数ですし。
ですので私は
FILE *my_stdin=fdopen(fileno(stdin),"rb");
を提案しました。(fdopen() は大抵の環境にあります。)
本当は
fdreopen(fileno(stdin), "rb", stdin);
を呼ぶだけってのが手軽なんですけど、これは UNIX にはないし。
========================================================================
飯嶋 浩光 / でるもんた http://www.ht.sakura.ne.jp/~delmonta/
IIJIMA Hiromitsu, aka Delmonta mailto:delmonta@ht.sakura.ne.jp
mailto:delmonta@pop01.odn.ne.jp
Technical Details
Message-ID:
<3BD052E0.53F18961@ht.sakura.ne.jp>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!nntp.cs.ubc.ca!news.ksw.feedmania.org!newsfeed.mesh.ad.jp!t-newsgw1.odn.ne.jp!nwall.odn.ne.jp!not-for-mailReferences:
<3bccadb8$0$202$25292c14@hirose.net.tohoku.ac.jp> <3BCD88E2.173DFE3E@ht.sakura.ne.jp> <3bcde51e$0$202$25292c14@hirose.net.tohoku.ac.jp> <3BCE44F2.9047358D@zero.ad.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 114a87,4cbf8aba05ee1bdd,start X-Google-Attributes: gid114a87,public X-Google-Thread: ff2c9,37f322d0cd2dfde0 X-Google-Attributes: gidff2c9,public X-Google-Thread: f9e95,9e4fba0723cebfae X-Google-Attributes: gidf9e95,public X-Google-Thread: fbb7e,9e4fba0723cebfae X-Google-Attributes: gidfbb7e,public X-Google-ArrivalTime: 2001-10-19 09:25:03 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!nntp.cs.ubc.ca!news.ksw.feedmania.org!newsfeed.mesh.ad.jp!t-newsgw1.odn.ne.jp!nwall.odn.ne.jp!not-for-mail From: IIJIMA Hiromitsu <delmonta@ht.sakura.ne.jp> Newsgroups: fj.sources.d,fj.comp.image,fj.os.msdos,fj.comp.lang.c Subject: Re: ppmtogif-noLZW.c Followup-To: fj.comp.lang.c Date: Sat, 20 Oct 2001 01:20:48 +0900 Organization: ODN dial-up user Lines: 42 Message-ID: <3BD052E0.53F18961@ht.sakura.ne.jp> References: <3bccadb8$0$202$25292c14@hirose.net.tohoku.ac.jp> <3BCD88E2.173DFE3E@ht.sakura.ne.jp> <3bcde51e$0$202$25292c14@hirose.net.tohoku.ac.jp> <3BCE44F2.9047358D@zero.ad.jp> NNTP-Posting-Host: cbcba-49p104.ppp11.odn.ad.jp Mime-Version: 1.0 Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Trace: nwall1.odn.ne.jp 1003508449 8719 61.201.12.104 (19 Oct 2001 16:20:49 GMT) X-Complaints-To: news@odn.ad.jp NNTP-Posting-Date: Fri, 19 Oct 2001 16:20:49 +0000 (UTC) X-Mailer: Mozilla 4.78 [ja] (Win98; U) X-Accept-Language: ja,en,zh-TW,zh,zh-CN,de,ko,es