在 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);
}
我想在 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);
}