文件编程-------------通过偏移指针(lseek)设置固定大小的文件
来源:互联网 发布:网络棋牌类游戏 编辑:程序博客网 时间:2024/04/30 05:36
1、操作:通过lseek设置一个固定大小的文件:
2、思路:创建一个文件,偏移指针指向你想要大小的那个位置,至少理论上是行得通的,是可以开辟一个这么大的文件的!
这时候你需要想到的是:当你的程序运行结束的时候偏移指针随着程序的结束而消失,而往文件里面写入东西是不会随着程序的结束而结束的,所以想到在想要大小的那个位置卡一个字母,也就是在那个位置先偏移指针指向他然后再写入一个字母,这样一个固定大小的文件就设置完成了;
3、涉及的偏移指针lseek:
(1)、lseek系统调用可以改变文件偏移量(File Offset),文件偏移量是一个整数,表示距文件起始处的字节数。
(2)、格式:
#include <sys/types.h>#include <unistd.h>off_t lseek(int fildes, off_t offset, int whence);
其中,参数whence必需是以下三个常量之一:
SEEK_SET:将文件偏移量设置在距文件开始处offset个字节。
SEEK_CUR:将文件偏移量设置在其当前值加offset,offset可正可负。
SEEK_END:将文件偏移量设置为文件长度加offset,offset可正可负。
int fildes :是你需要创建的并且打开的文件,用文件描述符代替。
off_t offset:表示偏移量的大小,也就是取决于你要设置的文件大小。
我觉得从开头开始卡距离比较方便,int whence用SEEK_SET。
4、代码实现:
#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#define SIZE 1024int main(){ int fd = open("big", O_RDWR|O_CREAT, 0777); if(fd == -1) { perror("open fd"); return -1; } // 设置一个文件偏移指向1g处,卡住他; lseek (fd, 1024*1024*1024, SEEK_SET); char buf[SIZE] = "hello"; write(fd,buf,1); close(fd); return 0;}
阅读全文
0 0
- 文件编程-------------通过偏移指针(lseek)设置固定大小的文件
- 利用lseek()函数创建一个固定大小的文件
- 利用lseek制作任意大小的文件
- Unix学习笔记------文件IO------使用lseek设置文件当前读写偏移量(即:当前的读写位置)
- 创建固定大小文件并通过mmap的操作
- 创建固定大小的文件
- Linux C编程学习笔记(3):read、write、lseek函数及文件读写和文件读写指针的移动操作
- Linux文件系统编程 系统调用 文件偏移指针测试
- linux生成固定大小的文件
- linux 下 生成固定大小的文件
- LinuxC编程之IO-通过lseek对文件进行读写
- 通过文件指针来获取文件的大小(fseek与ftell函数 )
- 文件指针偏移的相关函数(rewind ftell fseek)
- dd创建固定大小文件
- 如何设置文件的大小
- 设置上传文件的大小
- linux下如何通过lseek定位大文件
- 结构体内部偏移的妙用 从文件中按照固定格式读取数据
- java http协议
- SQL 表各种连接查询图解
- 3DSlicer18:Layouts
- <C语言>九九乘法表
- jsonp其实很简单【ajax跨域请求】
- 文件编程-------------通过偏移指针(lseek)设置固定大小的文件
- Unity中读Xml配置文件
- 三国游戏
- ssm导出
- HDU
- bzoj1030 [JSOI2007]文本生成器(AC+dp)
- 利用UDP进行两台主机进行通信
- 2017.8.8
- 重采样