おはようございます。
Javaはそれなりに経験があるのですが、Cの経験は皆無に等しいものです。
FILE *fp;
fp = fopen("C:\hoge.txt","r");
if(::GetFileSize(fp,NULL)>1000000){
ログをバックアップに格納し、新しいファイルを作る;
}
としたところ、ファイルの中身が空でもif文の中を通るようになってしまいました。
ファイルサイズがうまくとれていないようなのですが、どこに原因があるのでしょうか。
クイックウォッチをしようしても中の値が見れません。。。。。
環境はMicrosoft Visual Studio .NET 2003 + WinXPです。
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
ご質問の内容のプログラムでGetFileSizeは使えません。
GetFileSizeを使用する場合、第一引数はCreateFileなどのAPIで取得できるファイルハンドルを使用します。fopenの場合、ファイルディスクリプタですので、feof、fread、fseekなどを使用して、同様の機能を実現する必要があります。
MFCのCFileクラスを使うというところまでわかりました。fopenじゃダメなんですね(同様の機能を実現できる気がしないです)。
MSDNのサンプルを見てもコメントは英語で書いてあるし。。。。
訳がわからなくなってきました^^;
No.3
- 回答日時:
環境に依存せず一般的に使える方法を紹介します。
int fd ;
struct stat st ;
fd = fileno(fp) ;
fstat(fd,&st) ;
st.st_size が求めるファイルサイズです。
No.2
- 回答日時:
ありがとうございます。
タイトルにfopenで~とありますが、fopenしか知らなかっただけなので、CFileを使ってみたところうまく行きそうな感じです(コンパイルはできました)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル内のデータを1行削除...
-
fortranで文字列を読み込む際の...
-
C言語でファイルから読み込みが...
-
int型の値をファイルに保存
-
BCB 読み込み。
-
EOF判定されない
-
fopenで開いたファイルのサイズ...
-
アクセスカウンターが更新され...
-
テキストファイルの行数を取得...
-
UNIXシェルプログラム等からバ...
-
ファイルポインタが動かない・・・
-
C言語での改行コードの扱いにつ...
-
C言語初心者の質問失礼します。
-
OLE又はDDEを使うVISUAL BESIC...
-
バッファとは何ですか
-
C言語関数違いについて。
-
ExcelVBAでカレントディレクト...
-
パラメータが正しくありません...
-
windows.hがincludeされない
-
VB.NETで他のプロジェクトで作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内のデータを1行削除...
-
テキストファイルの行数を取得...
-
バイナリファイルをテキストフ...
-
fgetsで2行目から文字化け
-
VBSで指定行に挿入
-
ファイルサイズ指定し、ファイ...
-
c言語 2つのファイルを行ご...
-
freadとfwrite
-
winsock recvでの文字化け
-
【VB.Net】バイト型配列に読み...
-
C言語での改行コードの扱いにつ...
-
fopen(書き込みモード)でファイ...
-
fortranで文字列を読み込む際の...
-
EOF判定されない
-
改行までの一文字ずつのファイ...
-
InternetReadFileで大きいファ...
-
freadでファイルを読み込んだ際...
-
C言語での採番について
-
複数テキストファイルを読み込...
-
C言語 バイナリファイルの読み...
おすすめ情報