Re: メモ帳への書き込み ( No.1 ) |
- 名前:かたぱると 日時:2008/04/01 17:25
fopen等でファイルを開いたファイルポインタ等はありますでしょうか。
テキストファイルに書き込むお約束な流れの例として
@fopenでファイルを開いてFILEポインタを取得(書き込みなので"w"オプションなどを指定する)
Afopenで取得したFILEポインタを利用してfprintf等でファイルへ書き込む
BfcloseでFILEポインタを閉じる
なのでfprintfだけでは書き込む先がありません。
fopen等を行っていて、それでもエラーが出るのであれば
そのエラー内容を教えていただけますでしょうか。
|
Re: メモ帳への書き込み ( No.2 ) |
- 名前:mantis 日時:2008/04/01 18:11
実行して、最初に一度writeモードで開き、前に書いてあった内容を消すのですが、
そのwriteモードで開いたメモ帳をfcloseし、もう一度今度はaモード(追加書き込み)で開くところの近くで、
○○を終了します、というメッセージが出てしまいます。
|
Re: メモ帳への書き込み ( No.3 ) |
- 名前:かたぱると 日時:2008/04/01 18:48
おそらくですが
>前に書いてあった内容を消す
この処理の中でメモリのアクセスエラーをしているのではないでしょうか。
fopenのwモードはファイルが既にあった場合はサイズを0にして上書き、といったモードなので
wモードにて既に存在しているファイルを開いた場合、
すでにクリアされた状態のはずです。
よって、無いものをクリアしようとしてメモリアクセスでおかしな位置を壊しているのではないでしょうか。
fopenの各モードの動作については以下を参考にしてみると良いかと。
ttp://www9.plala.or.jp/sgwr-t/c/sec17.html
それでも問題が解決しない場合は
該当部分のソースを張っつけてくれると手っ取り早いですね。
|
Re: メモ帳への書き込み ( No.4 ) |
- 名前:通 日時:2008/04/01 19:24
>無いものをクリアしようとして
>メモリアクセスでおかしな位置を壊している
wモードはファイルが既に存在する場合、
サイズを0にしますが、ファイル自体を削除する
訳ではありません。
よって、何度wモードでオープンしようと
サイズが0になるだけです。
#上書きであって再作成ではない。
#マルチスレッドやマルチプロセスになると
#もう少しややっこしくなりますが
>もう一度今度はaモード(追加書き込み)で開くところの近くで、
近くでといわれても、そのコードを見たことが
在るのはあなただけなので、その辺りを重点的に
調べてくださいとしかいえません。
その周辺のコードを貼り付ければ、
あるいはもっと詳しいことを助言できるかも
知れませんが。:-p)
|
Re: メモ帳への書き込み ( No.5 ) |
- 名前:mantis 日時:2008/04/02 11:21
ご迷惑をお掛けしてすみませんでした。
エラーの原因が分かりました。
ありがとうございました。
|