乱数の数値のストリーム(https://github.com/reubenhwk/diehard)をテストするためにこのdiehard repoを使用しようとしています。Cのフォーマットされていない直接アクセスバイナリファイルに書き込む
次にコマンド 頑固 をテストするファイルの名前を促します:それは読み込むファイルの種類のこれらの詳細を提供します。
このファイルは、form = "unformatted"、access = "direct"バイナリ ファイル(10〜1200万バイト)でなければなりません。
これらは、Fortranに固有のファイル規約です。問題は、私は私のランダムなバイナリストリームを生成するためにlfsrジェネレータを使用しています。それはCです。テキストファイルまたは.bin
ファイルへバイナリストリームのfputc
を実行しようとしましたが、diehardは受け入れられないようですそれ。
私はfortranに関する経験がありません。このファイルタイプをCで作成する方法はありますか?弾丸を噛んで、ファイルを作成するFortranサブルーチンをCに呼び出させるだけでいいですか?参考のために私の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);
}
はい、使用しているコンパイラ(バージョン付き)の具体的な期待を見つける必要があります。いくつかの例をここで検索して見つけることができます。 – francescalus