在 linux 中创建一个大小为 128k 的文件,其中的数据有 128k 个

Create a file in linux of size 128k which has data has 128k ones

我想在 linux 中创建一个大小为 128k 的文件,其中的数据有 128k 个。 最快的方法是什么?

为什么您需要最快的解决方案,以及最快的指标是什么?无论如何,将字节写入磁盘可能会成为瓶颈,所以生成它们的速度有多快并不重要,只要它快于输出介质的写入速率即可。

dd if=/dev/zero bs=131072 count=1 |
tr '[=10=]0' '7' >file

tr 的不同变体使用略有不同的语法,因此您可能需要稍微调整一下。

这是一个占用内存但希望完全便携的替代方案;

perl -e 'printf("\xff" x 131072)' >file

这比 dd 的任何东西都快一个数量级:-)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define SIZE    (128*1024)
int main(){
   char *p=malloc(SIZE);
   memset(p,'\xff',SIZE);
   fprintf(stdout,p,SIZE);
}