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算法的应用。 首先,让我们了解SHA1算法的基本原理。SHA1由美国国家安全局设计,是一种非对称加密算法,它接收...
Linux 下C语言获取文件大小 C语言是一种比较底层的语言,有时在其他语言中很容易操作的事情,在c语言中就比较麻烦,例如获取一个文件的大小。Java中File类有个length函数,Python中os.path包中有个getsize函数,...
`getFileSize()`是一个辅助函数,用来获取文件大小。 接着,服务器使用`send()`函数将缓冲区中的数据发送给客户端。客户端则用`recv()`接收数据,并可能使用`fwrite()`将接收到的数据写入本地文件。在循环中,这两...
在C语言中,获取文件大小是一项基本操作,通常用于数据处理、文件读写或文件管理等场景。要实现这一功能,我们主要利用两个标准库函数:`fseek()` 和 `ftell()`。这两个函数都是在 `<stdio.h>` 头文件中定义的。 1....
其中,dwFileAttributes 成员存储文件的属性,如文件类型、文件大小、文件创建时间等信息。ftCreationTime、ftLastAccessTime 和 ftLastWriteTime 成员分别存储文件的创建时间、最后一次访问时间和最后一次修改时间...
本篇文章将深入探讨如何用C语言进行文件的读写操作。 1. **文件打开与关闭** 在C语言中,我们首先需要使用`fopen()`函数打开一个文件。这个函数接受两个参数:文件路径和操作模式。操作模式可以是"r"(只读)、"w...
这里,`FILE_SIZE`应设置为文件的实际大小,可以通过`fseek()`和`ftell()`获取。 写入内存的数据可以进一步处理,如解析文本、计算哈希值、进行加密等。当处理完成后,使用`fclose()`关闭文件流,释放资源: ```c ...
C语言还提供了`fseek()`和`ftell()`函数来改变和获取文件的读写位置。`fseek()`设置文件指针的位置,`ftell()`返回当前位置。 6. **错误处理**: 在进行文件操作时,要时刻注意可能出现的错误,比如文件未找到、...
总之,在Linux下用C语言读取文件信息,主要涉及`<sys/stat.h>`头文件中的`stat()`函数,通过它获取的`struct stat`结构体包含了丰富的文件属性。理解并熟练运用这些函数对于进行系统级编程和文件管理至关重要。在yjl...
在C语言中,获取文件大小通常有两种方法:一种是通过标准I/O库中的`fseek`和`ftell`函数,另一种是利用系统调用`stat`。这两种方法各有其特点,但都能有效地获取文件的大小。 首先,我们来看使用`fseek`和`ftell`的...
本篇文章将深入探讨如何使用C语言来实现wav文件的读取,以及如何解析和输出wav文件的相关信息。 首先,我们要理解wav文件的结构。WAV(Waveform Audio Format)是一种未经压缩的音频文件格式,广泛应用于Windows...
### Linux下C语言实现文件拷贝 #### 一、引言 在计算机编程领域,特别是在系统级编程中,文件操作是非常基础且重要的功能之一。在Linux环境下,利用C语言进行文件操作具有高度的灵活性和效率。本文将详细介绍如何在...
### C语言实现文件扫描知识点详解 #### 一、概述 本篇主要介绍如何利用C语言进行文件夹的扫描。在程序开发中,特别是在系统管理、数据处理等领域,对文件夹及其内部文件进行遍历是非常常见的需求。通过递归的方式...
2. 获取文件大小:通过`fseek()`和`ftell()`函数获取文件的长度。 3. 分配内存:根据文件大小分配足够的内存来存储文件内容。 4. 读取文件:使用`fread()`函数将文件内容读取到内存缓冲区。 5. 逆序处理:对缓冲区内...
在Windows操作系统中,使用C语言获取进程的CPU使用率、内存使用情况以及I/O状态是一项基本的任务,这对于系统监控、性能分析以及优化程序性能都至关重要。以下是对这些知识点的详细解释: 1. **CPU使用率**: CPU...
// 获取文件大小 fseek(file, 0, SEEK_END); long fileSize = ftell(file); fseek(file, 0, SEEK_SET); // 分配内存 char* data = (char*)malloc(fileSize + 1); if (data == NULL) { printf("内存分配失败...
- RIFF块:以"RIFF"四个字符开始,后面是文件大小(不包括'RIFF'和4字节的大小字段),然后是文件类型标识"WAVE"。 - fmt 块:包含了音频流的编码信息,如格式类型(PCM)、通道数、采样率、每秒字节数、帧大小和...
1)用Wireshark软件抓包得到test.pcap文件 ``` ##### 2. 文件头解析 解析pcap文件的第一步是理解其文件头结构。文件头包含了关于整个数据包捕获的重要信息,如版本号、时区偏移、捕获长度等。 ```c //pcap文件头...