文件的读写
怎么判断文件的当前状态?是reading, writeing。 问题点数:50、回复次数:3Top
1 楼chary8088(天使鱼儿)回复于 2006-12-01 08:30:50 得分 0
函数名: stat
功 能: 读取打开文件信息
用 法: int stat(char *pathname, struct stat *buff);
程序例:
#include <sys\stat.h>
#include <stdio.h>
#include <time.h>
#define FILENAME "TEST.$$$"
int main(void)
{
struct stat statbuf;
FILE *stream;
/* open a file for update */
if ((stream = fopen(FILENAME, "w+")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return(1);
}
/* get information about the file */
stat(FILENAME, &statbuf);
fclose(stream);
/* display the information returned */
if (statbuf.st_mode & S_IFCHR)
printf("Handle refers to a device.\n");
if (statbuf.st_mode & S_IFREG)
printf("Handle refers to an ordinary file.\n");
if (statbuf.st_mode & S_IREAD)
printf("User has read permission on file.\n");
if (statbuf.st_mode & S_IWRITE)
printf("User has write permission on file.\n");
printf("Drive letter of file: %c\n", 'A'+statbuf.st_dev);
printf("Size of file in bytes: %ld\n", statbuf.st_size);
printf("Time file last opened: %s\n", ctime(&statbuf.st_ctime));
return 0;
}
Top
2 楼goodluckyxl(被人遗忘的狗)回复于 2006-12-01 08:49:58 得分 0
_stat 中文件属性的位图模式下可以看到具体的读写属性Top
3 楼FBIq(aiby)回复于 2006-12-04 12:33:00 得分 0
#include <stdio.h>
int main(void)
{
FILE *fp = fopen ("d:\\abc.txt", "r+");
if (NULL == fp)
return 0;
getc(fp);
fputc('t', fp);
fclose(fp);
return 0;
}
文件的内容没有改变,为什么会这样?
注:该文件已成功读取Top





