C++/C は時間に従って bin ファイルを保存します

バックグラウンド

Linux アプリケーション プログラミングのプロセスでは、C++ または C 言語を使用して bin ファイルの保存と読み取りを行うことが比較的一般的な要件です。ここでは、C++ を使用して bin ファイルを保存する詳細な記録を示します。これは C 言語でも実装できます。

コード

C++/C 言語は bin ファイル関数を保存します。これは C++ でも使用できます。

正しい書き込みは 0 を返し、エラーは -1 を返します。

// C 保存bin文件
int writeBin(char *path, unsigned char *buf, int size)
{
    FILE *outfile;

    if ((outfile = fopen(path, "wb")) == NULL)
    {
        printf("\nCan not open the path: %s \n", path);
        return -1;
    }
    fwrite(buf, sizeof(unsigned char), size, outfile);
    fclose(outfile);
    return 0;
}

ファイルパスの生成のため、ファイルがキャンプされた時間に関連する文字列

まず現在時刻を取得し、次に必要な名前付け形式に従って saveFilePath を改善します。

writeBin 関数呼び出し、randomif_buf データをローカル ファイルに保存

time_t timep;
time (&timep);
char saveFilePath[128];
memset(saveFilePath, 0, sizeof(saveFilePath));
strftime(saveFilePath, sizeof(saveFilePath), "./%Y-%m-%d_%H_%M_%S_usb.bin",localtime(&timep));

writeBin(saveFilePath, randomif_buf, sizeof(randomif_buf));

ここに含める必要があるヘッダー ファイルは次のとおりです。

#include <string>
#include <time.h>
#include <iostream>

bin ファイルの読み取りの場合、次の関数を使用すると、読み取りが正しい場合は 0 が返され、読み取りエラーの場合は -1 が返されることがわかります。

int readBin(char *path, char *buf, int size)
{
    FILE *infile;

    if ((infile = fopen(path, "rb")) == NULL)
    {
        printf("\nCan not open the path: %s \n", path);
        return -1;
    }
    fread(buf, sizeof(char), size, infile);
    fclose(infile);
    return 0;
}

実際の使用時に保存されるbinファイルは下図のとおりです。

ファイルの命名形式が正しいことが明らかにわかります。これは、上記のコードの実装です。

bin ファイルは vscode で表示され、bin ファイル用のプラグインをインストールする必要があります。

バイナリビューア

下図のように検索するとプラグインがインストールできます 

具体的な使い方は下図の通りです

表示する bin ファイルを選択し、右クリックして 16 進表示方法を選択すると、すべてのデータが表示され、特に ubuntu ではより便利です。Windows の多くのツールは bin ファイルを表示でき、ubuntu も良い方法です。 

おすすめ

転載: blog.csdn.net/li171049/article/details/131133664