🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.sources.d
Article #207

Re: ppmtogif-noLZW.c

#207
From: IIJIMA Hiromitsu
Date: Fri, 19 Oct 2001 16:20
42 lines
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-mail
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>

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