|
>ファイル操作はいろいろとやりかたがあります。
>ファイルの属性を取得したいのであれば、statをいう関数があります。
>後は、自分のセンスで作成できると思います。
>がんばってください。
ナナシーさん。
アドバイスありがとうございます。
statについて調べて、ソースを書き換えてみたのですが、コンパイラが通りません。
サンプルを参考にして記述したのですが、何か勘違いしているのでしょうか?
----- ソース -----
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
int main()
{
int i;
int cnt;
int rtncd;
/* ↓ここに追加 */
struct _stat status;
char data[200][100];
FILE *fp_r, *fp_w;
/*-- ファイル書込み --*/
fp_w = fopen("C:\\Work\\Tmp\\writedata.dat", "w");
for (i = 1; i < 100; i++) {
fprintf(fp_w, "%.3d,%.6d\n", i, i * 3);
}
fclose(fp_w);
/*-- ファイル読込み --*/
/*-- ファイルが存在することをチェックする --*/
/* ↓ここに追加 */
rtncd = _stat("C:\\Work\\Tmp\\writedata.dat", &status);
if (0 == rtncd) {
fp_r = fopen("C:\\Work\\Tmp\\writedata.dat", "r");
cnt = 0;
while (1) {
if (NULL == fgets(data[cnt], 100, fp_r)) {
fclose(fp_r);
break;
}
cnt++;
}
/*-- ファイルを加工して再度書込み --*/
fp_w = fopen("C:\\Work\\Tmp\\writedata2.dat", "w");
/*-- 取得したファイル情報を付加 --*/
/* ↓ここに追加 */
fprintf(fp_w, "AccessTime:%d\n\n", status.st_atime);
for (i = cnt - 1; i != -1; i--) {
fprintf(fp_w, "%s", data[i]);
}
fclose(fp_w);
} else {
printf("Error:No File\n");
return(-1);
}
return (0);
}
----- エラー -----
file.c: In function `main':
file.c:10: error: storage size of `status' isn't known
------------------
|