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。