どうすれは、WINDOWSモードでSTDERRを表示出来るのでしょうか? – プログラミング – Home

どうすれは、WINDOWSモードでST...
 
通知
すべてクリア

どうすれは、WINDOWSモードでSTDERRを表示出来るのでしょうか?


ひら
 ひら
(@ひら)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

プロジェクト → 設定 → C/C++ → プロセッサの定義
            → リンク → プロジェクトオプション
の設定がCONSOLEではなくてWINDOWSになっている場合、
stderrの表示はどうすれば、いいのでしょうか?

for (HMOD=1;HMOD<100;HMOD++)
for (HnC=0;HnC<20;HnC++)
{

sprintf(fn, V%02d%02d.wav, (HMOD-1), HnC);
if ((fp = fopen(fn, rb)) == NULL)
{
  fprintf(stderr,%s cannot open Model No. = %d,
Sample No. = %d .\n,fn,HMOD,HnC);
exit(3);
}
}
ファイルが当該DIRECTORYにあるのに、
HMOD=11、HnC=7で
(即ちV11007.wavのファイルが)オープン出来なかった
 理由が知りたいのです。)
OPEN/CLOSEはちゃんと各所で噛み合わさっていて、
どのRAM容量を持つパソコンでも、この現象が起きることは
確認しています。


引用解決済
トピックタグ
たみあ
 たみあ
(@たみあ)
ゲスト
結合: 22年前
投稿: 57
 

sprintf して MessageBox で画面表示するか
デバッガーで直接覗けばよいのではないですか?

> OPEN/CLOSEはちゃんと各所で噛み合わさっていて、

本当にかみあってますか?
デバッガーで確認しましたか?
ちゃんと実行されていることをなんらかの方法で確認していますか?

現象からいって fclose されていない、が一番怪しいです

RAM 容量は(まったくといっていいほど)関係ありません


返信引用
REE
 REE
(@REE)
ゲスト
結合: 24年前
投稿: 240
 

なぜ、質問ごとに名前を変えるのでしょうか?

もしかして、1980個のファイルを同時に開いた状態にしようとしていませんか?


返信引用
.
 .
(@.)
ゲスト
結合: 23年前
投稿: 37
 

向こうにあれだけレスが付いているのに無視してよく新規でスレッド起こせるな。
いい根性しとる。


返信引用
ひら
 ひら
(@ひら)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

申しわけないです。
あちらにも書きこみたいんですが、今は出来ないのです。

>もしかして、1980個のファイルを同時に開いた状態にしようとしていませんか?

いや。開きながら、使えばすぐ閉じて行っています。

>ちゃんと実行されていることをなんらかの方法で確認していますか?

Open箇所でカウンターが+に、Closeの箇所でそのカウンターが-になるようにして、
そのカウンターがOpen前には必ず0になっていることを確かめに行っています。

>現象からいって fclose されていない、が一番怪しいです

やっているつもりなんですが。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

>HMOD=11、HnC=7で
>(即ちV11007.wavのファイルが)オープン出来なかった
> 理由が知りたいのです。)

 HMOD=11、HnC=7の時って、、、

>sprintf(fn, V%02d%02d.wav, (HMOD-1), HnC);

・・・なんだから、「V11007.wav」ではなくて「V1007.wav」では???
 単なる書き間違いか?(?_?)

 質問の方はエラーの表示のしかた?
 デバック目的ならTRACEもいいかと。

 こんなのとか、、、
http://www24.cds.ne.jp/~neg/pro/piyo1/comp/trace.html


返信引用
ひら
 ひら
(@ひら)
ゲスト
結合: 22年前
投稿: 7
Topic starter  

FOPENがフェ-ルした直後にGETLASTERRORをかませようとしています。
どなたか使い方をご存知ですか?
少なくとも、戻り値をウォッチあたりで見れるようにしたい


返信引用
こん!
 こん!
(@こん!)
ゲスト
結合: 22年前
投稿: 49
 

http://www.microsoft.com/japan/support/kb/articles/94/9/99.asp

こんなんがご希望?


返信引用
PAI
 PAI
(@PAI)
ゲスト
結合: 23年前
投稿: 359
 

勉強すべきなのは日本語ではなく人にものを尋ねる態度だったってことですか?

#include stdafx.h
#include <stdlib.h>
#include <iostream>
using namespace std;

void check()
{
char filename[_MAX_PATH];
FILE* fp;
for (int i=1;i<100;i++){
for (int j =0;j<20;j++){
sprintf(filename, V%02d%02d.wav, (i-1), j);

if ((fp = fopen(filename, rb)) == NULL){
cout << filename << endl;
cout << _sys_errlist[errno] << endl;
return;
}
fclose( fp );
}
}
}

int main(int argc, char* argv[])
{
check();
return 0;
}


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 勉強すべきなのは日本語ではなく人にものを尋ねる態度だったってことですか?

...というより、余計な言い訳するとカドが立つってことでしょう。


返信引用
こん!
 こん!
(@こん!)
ゲスト
結合: 22年前
投稿: 49
 

> >もしかして、1980個のファイルを同時に開いた状態にしようとしていませんか?

> いや。開きながら、使えばすぐ閉じて行っています。

上のリストを見るかぎりforループ内のどこにも対応するfcloseが無いようですが。
だから1980個だといわれているのでしょう。

二度手間三度手間となっている様ですのでその部分のリストを手を加えずにコピペで
持ってきてアップされたらいかがでしょう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました