Path: chuka.playstation.co.uk!news1.scei.co.jp!usenet From: minoru@isl.intec.co.jp (Minoru Matsumoto) Newsgroups: playstation.ny.program.beginner Subject: Re: open=?ISO-2022-JP?B?GyRCJE47SCQkSn02NSQoJEYjMhsoQg==?= Date: 7 Jan 1998 16:18:29 GMT Organization: INTEC System Laboratory Inc. Ltd. Lines: 58 Message-ID: <34b3a956p2369@base.minoru.isl.intec.co.jp> References: <01bd199b$afe83d20$LocalHost@guest00141> <34b0c517p0235@base.minoru.isl.intec.co.jp> <01bd1a9b$87be7160$LocalHost@guest00141> NNTP-Posting-Host: 202.226.28.135 Mime-Version: 1.0 Content-Type: Text/Plain; charset=ISO-2022-JP X-Newsreader: WinVN 0.99.7J PL01 (x86 32bit) cqz03222 の松本 実です。 In article <01bd1a9b$87be7160$LocalHost@guest00141>, nasu@mail.interq.or.jp says... >autoファイルでデータをあらかじめ読み込むとプレステ本体のメモリがソフトによ >っては、いっぱいになってしまうのでは、 >と思い音楽再生とファイルの扱いかたをかねてプログラムを組んでいて行きずまっ >たので質問されていただきました。 ということは、 (1) 黒 PS 上に seq 再生プログラムを転送しておく (2) 必要に応じ、パソコンから seq ファイルを黒 PS に転送する (3) 黒 PS で seq ファイルを再生する ということですね。 >新たにいきづまったのでたすけてください。 >> >> 例: ファイル内容をメモリに展開 >> void *ExpandFile(char *filename) { >> int fd = open(filename, O_RDONLY), length; >> void *memory; >> >> /* open() が負の値を返した時はエラー */ >> if (fd < 0) >> return 0; >> length = lseek(fd, 0, SEEK_END); >> lseek(fd, 0, SEEK_SET); >> /* 本当は malloc() や read() の返り値をチェック >> するべきだが、省略 :-) */ >> memory = malloc(length); >> read(fd, memory, length); >> close(fd); >> return memory; >> } >上のサンプルを使おうとしたのですが、ファイル名(char >*filename)は、どう記入するのですか? >例えば、ハードディスクの”c:\abc\tim.tim”だったらどうすればよいのですか? 私が書いたコードは、パソコン上で動かすことを意図していますので、 filename には "c:\abc\tim.tim" が入ります。 >それと、 >void *memory; >は、どのような変数の型なのですか? 指示内容が不定なポインタ型です。任意のポインタ型は void * に キャストできます。これは逆に言うと、この型の変数を使う場合は 必ず別の型にキャストして使わなければならない、ということでも あります。 以下、余談ですが、seq ファイルの数やサイズを気にしているなら、 PS のメモリ上に LHA で圧縮したデータを転送する手もあります。 一番最初に書いた方法だと PS←→パソコン間の通信プロトコルを 決める必要がありますが、この方法なら CIP で転送できます。 解凍プログラムはプログラミングフォーラムからたどれます。 ---