我正在尝试使用这个顽固的 repo 来测试数字流的随机性(https://github.com/reubenhwk/diehard)。它为它读取的文件类型提供了这些细节:
然后命令 diehard 将提示输入要测试的文件的名称。
该文件必须是 10 到 1200 万字节的 form="unformatted",access="direct" 二进制文件。
这些是特定于 fortran 的文件约定,不是吗?问题是,我正在使用 lfsr-generator 生成我的随机二进制流,这是在 C 语言中。我尝试fputc
将二进制流写入文本文件或.bin
文件,但顽固分子似乎不接受它。
我没有使用fortran的经验。有没有办法使用 C 创建这种文件类型?我是否只需要硬着头皮让 C 调用创建文件的 fortran 子例程?这是我的C代码供参考:
#include <stdio.h>
int main(void)
{
FILE *fp;
fp=fopen("numbers", "wb");
const unsigned int init = 1;
unsigned int v = init;
int counter = 0;
do {
v = shift_lfsr(v);
fputc( (((v & 1) == 0) ? '0' : '1'), fp);
counter += 1;
} while (counter < 11000000);
}