0

我需要制作许多大小不一的大型文本文件,精确到兆字节的倍数(换句话说,正好是 10 MB、50 MB、100 MB,而且我不确定我必须要多大)。

我不希望文件全部为 1 或 0,因此我有一个大约 10 MB 的文本文件,并且我想根据需要多次复制该文本以制作我的文件。

我已经看到使用 sendfile 而不是 read() 和 write() 的建议。我写了一些东西,可以从我的 10MB 文件中创建一个 1MB 文件,但是我想知道一旦我点击 EOF 以创建一个超过 10MB 的文件,我该如何循环。

这最终将在 Linux 计算机上使用,但我现在用 C 语言的 Cygwin (Windows) 编写它。

4

1 回答 1

1

如果您已经在从头到尾浏览文件并进行复制,那么您所缺少的只是一种回到开头的方法。

当你击中时EOF,使用rewind()

rewind(file);

file是你的文件描述符。rewind()是 的特例fseek()

fseek(file, 0, SEEK_SET); // Same effect
于 2013-11-22T22:17:05.233 回答