C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: ファイル排他処理での動作2


(過去ログ 94 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■55955 / inTopicNo.1)  ファイル排他処理での動作2
  
□投稿者/ たっち (3回)-(2010/12/20(Mon) 18:30:42)

分類:[C/C++] 

いつもお世話になっています、たっちです。
前回、fopen時のファイル排他について質問したのですが(■No55811)
fopenでまた自己解決できない問題に直面したので質問させてください。

問題は、fseekでプロセスが落ちてしまうのです。
エラー内容は

Debug Assertion Failed!
program:該当プロセス.exe
File:fseek.c
Line:146
Expression:(stream != NULL)

コードは下記のように書いています。

fp = fopen( test_file1, "rb" );

if( fp != NULL ){
fseek( fp, 0L, SEEK_SET ); <-- ココでエラー
}

ファイルオープンできた場合、シークするようになっていると思うのですがNULLで落とされているみたい?
test_file1のファイルは別プロセスにより250msごとに別フォルダからコピーされ上書きされます。
これが良くないのでしょうか?

開発環境
Windows XP
Visual Studio 6.0
C++

本当はもっと色々試行錯誤したいのですが環境がなく時間も限られてしまっているので情報ある方お願いします。

引用返信 編集キー/
■55956 / inTopicNo.2)  Re[1]: ファイル排他処理での動作2
□投稿者/ επιστημη (2577回)-(2010/12/20(Mon) 19:15:52)
επιστημη さんの Web サイト
> ファイルオープンできた場合、シークするようになっていると思うのですがNULLで落とされているみたい?
> test_file1のファイルは別プロセスにより250msごとに別フォルダからコピーされ上書きされます。
> これが良くないのでしょうか?

そのプロセスからのちょっかいを止めてみりゃわかんでないのん?

引用返信 編集キー/
■56035 / inTopicNo.3)  (削除)
□投稿者/ -(2010/12/23(Thu) 13:41:53)
この記事は(管理者)削除されました
引用返信 編集キー/
■56049 / inTopicNo.4)  Re[1]: ファイル排他処理での動作2
□投稿者/ shu (322回)-(2010/12/24(Fri) 10:15:08)
No55955 (たっち さん) に返信

> コードは下記のように書いています。
>
> fp = fopen( test_file1, "rb" );
>
> if( fp != NULL ){
> fseek( fp, 0L, SEEK_SET ); <-- ココでエラー
> }
>
> ファイルオープンできた場合、シークするようになっていると思うのですがNULLで落とされているみたい?
> test_file1のファイルは別プロセスにより250msごとに別フォルダからコピーされ上書きされます。
> これが良くないのでしょうか?
良くないですね。
この処理だとfopenでfseekだからファイルロックされていないので外部で書き換え可能で書き換えられたら
ファイルポインタがおかしくなってしまいます。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -