Linux 使用lseek生成4G以上的空洞文件
2018-02-27 11:10
417 查看
创建4g空洞文件源码lseek_creat.c#ifndef _FILE_OFFSET_BITS
#define _FILE_OFFSET_BITS 64
#endif
#include<stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char** argv)
{
if(argc < 2)
{
printf("Usage: %s [file]\n", argv[0]);
return -1;
}
int fd = open(argv[1], O_WRONLY | O_CREAT, 0755);
if(fd == -1)
{
perror("open");
return -1;
}
off_t ret = lseek(fd, 0xFFFFFFFFl, SEEK_SET); //0xFFFFFFFF是一个长整数
if(ret == -1)
{
perror("lseek");
return -1;
}
write(fd, "\0", 1);
close(fd);
return 0;
}如果想要在32位系统上操作大于2g的文件,你需要在包含任何头文件前添加宏#define _FILE_OFFSET_BITS 64。
#define _FILE_OFFSET_BITS 64
#endif
#include<stdio.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char** argv)
{
if(argc < 2)
{
printf("Usage: %s [file]\n", argv[0]);
return -1;
}
int fd = open(argv[1], O_WRONLY | O_CREAT, 0755);
if(fd == -1)
{
perror("open");
return -1;
}
off_t ret = lseek(fd, 0xFFFFFFFFl, SEEK_SET); //0xFFFFFFFF是一个长整数
if(ret == -1)
{
perror("lseek");
return -1;
}
write(fd, "\0", 1);
close(fd);
return 0;
}如果想要在32位系统上操作大于2g的文件,你需要在包含任何头文件前添加宏#define _FILE_OFFSET_BITS 64。
相关文章推荐
- LINUX库文件的生成与使用
- Linux crash dump文件生成与使用
- linux使用dd命令快速生成大文件
- Linux环境下静态库的生成和使用 (.a文件)
- linux库文件编写入门 && 使用和生成库
- [转]linux库文件编写入门 && 使用和生成库
- Linux crash dump文件生成与使用
- JNI 编写动态链接库 HelloNative 详细过程(也即用Java和C在Linux下动态生成并使用so文件过程)
- linux使用dd命令快速生成大文件
- C++文件如何在linux下生成动态库So,以及如何使用这个动态库
- linux使用dd命令快速生成大文件
- linux库文件编写入门 && 使用和生成库
- linux使用dd命令快速生成大文件
- linux库文件编写入门 && 使用和生成库[转]
- linux 库文件 生成与使用
- linux库文件生成与使用
- ULONGLONG类型的使用,适合存储文件的大小(4G以上的)
- 32位Linux下使用2G以上大文件的几个相关宏的关系
- 使用linux2.6 udev自动生成设备文件
- Linux环境下动态库的生成和使用 (.so文件)