linux文件缓冲大小,确定在Linux中读取文件的最佳缓冲区大小

我正在编写一个从stdin读取并写入stdout的C程序。但它会缓冲数据,以便仅在读取特定数量的字节后才执行写操作(= SIZE)

#include

#include

#define SIZE 100

int main()

{

char buf[SIZE];

int n=0;

//printf("Block size = %d\n", BUFSIZ);

while( ( n = read(0, buf, sizeof(buf)) ) > 0 )

write(1, buf, n);

exit(0);

}

Iam在Oracle Virtual Box(4GB RAM,2个内核)上托管的Ubuntu 18.04上运行该程序,并测试该程序的缓冲区大小是否不同。我已经将标准输入重定向到来自文件(包含动态创建的随机数)的文件,并将标准输出重定向到/ dev / null。这是用于运行测试的shell脚本:

#!/bin/bash

# $1 - step size  (bytes)

# $2 - start size (bytes)

# $3 - stop size (bytes)

echo "Changing buffer size from $2 to $3 in steps of $1, and measuring time for copying."

buff_size=$2

echo "Test Data" >testData

echo "Step Size:(doubles from previous size) Start Size:$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值