小言_互联网的博客

获取文件状态

357人阅读  评论(0)


stat结构体中很多属性在linux系统下才有效,windows系统下无效

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//包含两个头文件
#include<sys/stat.h>
#include<sys/types.h>
#include<ctime>
#include<string.h>
//获取文件状态
void test01()
{
   
	//先创建一个结构体变量
	struct stat mystat;
	stat("hello.txt", &mystat);
	printf("文件的大小%d\n", mystat.st_size);
	//获取atime----最后一次访问时间
	//ctime返回值是char* 
	char* p = ctime(&mystat.st_atime);
	printf("%s", p);
	//因为返回的字符串中包含了换行
	//去掉换行
	//方法1:
	//因为指针指向的可能是一个字符串常量,所以强行修改可能会报错
	char buf[64] = {
    0 };
	strcpy(buf, p);//遇到\0结束拷贝
	//去掉字符串结尾的\n
	buf[strlen(buf) - 1] = '\0';
	printf("%s", buf);
}
int main()
{
   
	test01();
	system("pause");
	return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//包含两个头文件
#include<sys/stat.h>
#include<sys/types.h>
#include<ctime>
#include<string.h>
//获取文件状态
void test01()
{
   
	//先创建一个结构体变量
	struct stat mystat;
	stat("hello.txt", &mystat);
	printf("文件的大小%d\n", mystat.st_size);
	//获取atime----最后一次访问时间
	//ctime返回值是char* 
	char* p = ctime(&mystat.st_atime);
	printf("%s", p);
	//因为返回的字符串中包含了换行
	//去掉换行
	//方法2:
	//因为指针指向的可能是一个字符串常量,所以强行修改可能会报错
	char buf[64] = {
    0 };
	//拷贝到\n结束
	strncpy(buf, p, strlen(p)-1);
	printf("%s", buf);
}
int main()
{
   
	test01();
	system("pause");
	return 0;
}

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//包含两个头文件
#include<sys/stat.h>
#include<sys/types.h>
#include<ctime>
#include<string.h>
//获取文件状态
void test01()
{
   
	//先创建一个结构体变量
	struct stat mystat;
	stat("hello.txt", &mystat);
	printf("文件的大小%d\n", mystat.st_size);
	//获取mtime------最后一次修改时间
	char* p = ctime(&mystat.st_mtime);
	char buf[64] = {
    0 };
	strcpy(buf, p);
	printf("%s", buf);
}
int main()
{
   
	test01();
	system("pause");
	return 0;
}


转载:https://blog.csdn.net/m0_53157173/article/details/113879530
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场