[過去ログ] 関数型プログラミング言語Haskell Part16 (978レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
45: デフォルトの名無しさん [sage] 2011/10/08(土) 15:57:34.67 AAS
>>41,42
41(1): デフォルトの名無しさん [sage] 2011/10/08(土) 15:22:55.70 AAS
>>40
使えない
素直にFILE*を作るCライブラリを呼び出す

どうしてもHandleから作る必要があるなら fd を通す
handleToFd で Handle から fd にして
C の fdopen で fd からFILE* にして
とか

FILEとかHandleはライブラリも状態を持ってるから直接のマッピングは無理
fd は状態をカーネルが管理しているから、ライブラリ間では比較的ポータブルだけど
42(2): デフォルトの名無しさん [sage] 2011/10/08(土) 15:43:03.24 AAS
>>40
open関数? openはファイルディスクリプタを返して、FILE構造体へのポインタを返すのはfopenでは?

一般論としては、CレベルのfdやFILE *を使いたいなら、Cのopenなりfopenなりをインポートする必要がある。
GHCの場合、System.Posix.Internals.c_open が Cのopenのラッパーなので、ファイルディスクリプタで良いなら、何とかこれを呼べばよいだろう。
でも、FILE *のほうは自分でfopenをimportするしかないと思う。
ありがとうございます
すいません、fopen でした(C を久しく触ってないもので・・・)

記憶している状態がそもそも違うから、簡単に変換できるわけではないのですね
C の関数が使えない(SDK を入れてない)ので、C の fdopen を呼ぶこともできない

問題に突き当たったライブラリは libpng なんですけど、
デフォルトでは FILE* を必要とするのですが、どうも
独自のIO処理が使えるようにコールバックの仕組みも用意されているっぽいので、
それでなんとか対応できないか検討してみます
1-
あと 933 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.011s