fileno函数用于获取文件描述符,假设当前目录有1.txt, 2.txt, 3.txt, 则:
#include <stdio.h>
int main( void )
{
FILE *fp1 = fopen("1.txt", "r");
FILE *fp2 = fopen("2.txt", "r");
FILE *fp3 = fopen("3.txt", "r");
printf("%d\n", fileno(fp1));
printf("%d\n", fileno(fp2));
printf("%d\n", fileno(fp3));
fclose(fp1);
fclose(fp2);
fclose(fp3);
return 0;
}
结果为:
3
4
5
下面看看stat函数:
#include <stdio.h>
#include <sys\stat.h>
int main()
{
struct stat fileStat;
stat("1.txt", &fileStat);
printf("%d\n", fileStat.st_size); // 7 <--- 1.txt文件中的字节数
return 0;
}
下面看看fstat函数:
#include <stdio.h>
#include <time.h>
#include <sys\stat.h>
int main()
{
FILE *fp = fopen("1.txt", "r");
struct stat fileStat;
fstat(fileno(fp), &fileStat);
printf("%d\n", fileStat.st_size);
printf("%s", ctime(&fileStat.st_ctime)); // 有换行符
return 0;
}
结果我就不说了,睡觉去。