`
lgh1992314
  • 浏览: 315626 次
文章分类
社区版块
存档分类
最新评论

如何用C语言获取文件的大小

 
阅读更多

ITAT复赛的一个题,涉及文件操作,不会=。=


回学校学习了下:

fseek

语法:

  #include <stdio.h>
  int fseek( FILE *stream, long offset, int origin );

函数fseek()为给出的流设置位置数据.origin的值应该是下列值其中之一(在stdio.h中定义):

名称 说明
SEEK_SET 从文件的开始处开始搜索
SEEK_CUR 从当前位置开始搜索
SEEK_END 从文件的结束处开始搜索

fseek()成功时返回0,失败时返回非零. 你可以使用fseek()移动超过一个文件,但是不能在开始处之前. 使用fseek()清除关联到流的EOF标记.

ftell

语法:

  #include <stdio.h>
  long ftell( FILE *stream );

ftell()函数返回stream(流)当前的文件位置,如果发生错误返回-1.

至于stat调用,请详见:http://www.360doc.com/content/11/0110/16/4559801_85509847.shtml

代码如下:

#include <sys/stat.h>
#include <stdio.h>
/*
	函数名:getFileSize(char * strFileName)	
	功能:获取指定文件的大小
	参数:
		strFileName (char *):文件名
	返回值:
		size (int):文件大小
 */
int getFileSize(char * strFileName) 
{
	FILE * fp = fopen(strFileName, "r");
	fseek(fp, 0L, SEEK_END);
	int size = ftell(fp);
	fclose(fp);
	return size;
}
/*
	函数名:getFileSizeSystemCall(char * strFileName)	
	功能:获取指定文件的大小
	参数:
		strFileName (char *):文件名
	返回值:
		size (int):文件大小
 */
int getFileSizeSystemCall(char * strFileName) 
{
	struct stat temp;
	stat(strFileName, &temp);
	return temp.st_size;
}
int main()
{
	printf("size = %dbyte\n", getFileSize("naxienian.mp3"));
	printf("size = %dbyte\n", getFileSizeSystemCall("naxienian.mp3"));
	return 0;
}





分享到:
评论

相关推荐

    C语言获取文件的SHA1哈希值

    标题提到的“C语言获取文件的SHA1哈希值”是编程实践中一个基础且重要的任务,它涉及到C语言编程和SHA1算法的应用。 首先,让我们了解SHA1算法的基本原理。SHA1由美国国家安全局设计,是一种非对称加密算法,它接收...

    Linux 下C语言获取文件大小

    Linux 下C语言获取文件大小 C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在c语言中就比较麻烦,例如获取一个文件的大小。Java中File类有个length函数,Python中os.path包中有个getsize函数,...

    使用c语言实现文件传输

    `getFileSize()`是一个辅助函数,用来获取文件大小。 接着,服务器使用`send()`函数将缓冲区中的数据发送给客户端。客户端则用`recv()`接收数据,并可能使用`fwrite()`将接收到的数据写入本地文件。在循环中,这两...

    c语言获取文件大小的示例

    在C语言中,获取文件大小是一项基本操作,通常用于数据处理、文件读写或文件管理等场景。要实现这一功能,我们主要利用两个标准库函数:`fseek()` 和 `ftell()`。这两个函数都是在 `&lt;stdio.h&gt;` 头文件中定义的。 1....

    Windows平台C语言获取文件的一些属性

    其中,dwFileAttributes 成员存储文件的属性,如文件类型、文件大小、文件创建时间等信息。ftCreationTime、ftLastAccessTime 和 ftLastWriteTime 成员分别存储文件的创建时间、最后一次访问时间和最后一次修改时间...

    用C语言实现文件的读写操作

    本篇文章将深入探讨如何用C语言进行文件的读写操作。 1. **文件打开与关闭** 在C语言中,我们首先需要使用`fopen()`函数打开一个文件。这个函数接受两个参数:文件路径和操作模式。操作模式可以是"r"(只读)、"w...

    C语言读取文件数据,写入内存

    这里,`FILE_SIZE`应设置为文件的实际大小,可以通过`fseek()`和`ftell()`获取。 写入内存的数据可以进一步处理,如解析文本、计算哈希值、进行加密等。当处理完成后,使用`fclose()`关闭文件流,释放资源: ```c ...

    C语言读取文件

    C语言还提供了`fseek()`和`ftell()`函数来改变和获取文件的读写位置。`fseek()`设置文件指针的位置,`ftell()`返回当前位置。 6. **错误处理**: 在进行文件操作时,要时刻注意可能出现的错误,比如文件未找到、...

    LINUX下c语言读取文件信息

    总之,在Linux下用C语言读取文件信息,主要涉及`&lt;sys/stat.h&gt;`头文件中的`stat()`函数,通过它获取的`struct stat`结构体包含了丰富的文件属性。理解并熟练运用这些函数对于进行系统级编程和文件管理至关重要。在yjl...

    用C语言获取文件的大小示例分享

    在C语言中,获取文件大小通常有两种方法:一种是通过标准I/O库中的`fseek`和`ftell`函数,另一种是利用系统调用`stat`。这两种方法各有其特点,但都能有效地获取文件的大小。 首先,我们来看使用`fseek`和`ftell`的...

    用C语言实现wav文件的读取

    本篇文章将深入探讨如何使用C语言来实现wav文件的读取,以及如何解析和输出wav文件的相关信息。 首先,我们要理解wav文件的结构。WAV(Waveform Audio Format)是一种未经压缩的音频文件格式,广泛应用于Windows...

    Linux下C语言实现文件拷贝

    ### Linux下C语言实现文件拷贝 #### 一、引言 在计算机编程领域,特别是在系统级编程中,文件操作是非常基础且重要的功能之一。在Linux环境下,利用C语言进行文件操作具有高度的灵活性和效率。本文将详细介绍如何在...

    C语言实现文件扫描

    ### C语言实现文件扫描知识点详解 #### 一、概述 本篇主要介绍如何利用C语言进行文件夹的扫描。在程序开发中,特别是在系统管理、数据处理等领域,对文件夹及其内部文件进行遍历是非常常见的需求。通过递归的方式...

    linux C语言 文件逆序

    2. 获取文件大小:通过`fseek()`和`ftell()`函数获取文件的长度。 3. 分配内存:根据文件大小分配足够的内存来存储文件内容。 4. 读取文件:使用`fread()`函数将文件内容读取到内存缓冲区。 5. 逆序处理:对缓冲区内...

    Windows下用C语言获取进程cpu使用率

    在Windows操作系统中,使用C语言获取进程的CPU使用率、内存使用情况以及I/O状态是一项基本的任务,这对于系统监控、性能分析以及优化程序性能都至关重要。以下是对这些知识点的详细解释: 1. **CPU使用率**: CPU...

    C语言将文件数据读入内存

    // 获取文件大小 fseek(file, 0, SEEK_END); long fileSize = ftell(file); fseek(file, 0, SEEK_SET); // 分配内存 char* data = (char*)malloc(fileSize + 1); if (data == NULL) { printf("内存分配失败...

    C语言 wav文件读取头文件和数据

    - RIFF块:以"RIFF"四个字符开始,后面是文件大小(不包括'RIFF'和4字节的大小字段),然后是文件类型标识"WAVE"。 - fmt 块:包含了音频流的编码信息,如格式类型(PCM)、通道数、采样率、每秒字节数、帧大小和...

    C语言分析pcap文件

    1)用Wireshark软件抓包得到test.pcap文件 ``` ##### 2. 文件头解析 解析pcap文件的第一步是理解其文件头结构。文件头包含了关于整个数据包捕获的重要信息,如版本号、时区偏移、捕获长度等。 ```c //pcap文件头...

Global site tag (gtag.js) - Google Analytics