C でのファイルの読み取りと書き込みでパフォーマンスの問題があります。これが私の問題と解決策ですが、遅いです。
ASCII ファイルがあり、その中のすべての行をレコードと見なします。ファイル内のある位置にある特定の数に基づいて、このファイルを 2 つに分割する必要があります。たとえば、位置 10 の数値が 0 の場合、レコードは file1 に移動し、1 の場合、レコードは file2 に移動します。
私が行ったことは、入力ファイルと、出力ファイル用の他の 2 つのファイル ストリームを開くことです。入力ファイルから1行を読み取り、比較を行い、行がfile1またはfile2に移動してから、次のレコードが読み取られます。正常に動作していますが、非常に遅いです。これをより速く行う方法をアドバイスしてください。
ファイルの読み取り方法は次のとおりです。
bytes_read = readline(infile, (void*)buffer, line_size+1);
fwrite は、ファイルへの書き込みに使用されます。ファイルのサイズは約 50 MB です。入力ファイル全体を読み取った後、ファイルは閉じられます。