c - 如何用来自/dev/urandom 的 100 MB 数据填充文件?

标签 c linux

<分区>

我是 Linux 系统编程的新手。
我怎样才能用 100 MB 的任何数据(但不是零)填充一些文件?
我看到的唯一方法是使用/dev/urandom,但该怎么做?
我知道 Shell 中有 dd 命令,但我正在编写 C 程序

最佳答案

read(2)系统调用将用最多 count 字节填充缓冲区 buf,并返回填充的实际大小。所以你需要做的只是:

  1. 3 = open()/dev/urandom
  2. 4 = open() 目标文件
  3. 从缓冲区 3 读取()并写入 4,直到写入大小等于 100*1024*1024
  4. 关闭(3)
  5. 关闭(4)

你就完成了。例如,您也可以使用 mmap() 进行优化,但这可能不值得。

关于c - 如何用来自/dev/urandom 的 100 MB 数据填充文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22577397/

相关文章:

自动矢量化最小 float 的 C 代码

c - 为什么matlab使用mex内存不足

linux -/var/www 下的文件在 Ubuntu 14.04 上不区分大小写

linux - 运行 FTP 的 Ubuntu Crontab 不工作

c - 如何创建具有特定访问权限的 Unix 域套接字

c - 如何写一个简单的 "page fault generator"?

使用更多进程在 C 中捕获 SIGTERM

c - S32K146EVB删除/写入闪存时发生读冲突

linux - -b 参数在 csh 中有什么作用?

linux - 即使安装后也没有名为 numpy 的模块