C 言語でファイルに書き込む

胡金庫 2023年10月12日
  1. C 言語でファイルに書き込むには fwrite 関数を使用する
  2. C 言語でファイルに書き込むには write 関数を使用する
C 言語でファイルに書き込む

この記事では、C 言語でファイルに書き込む方法について複数の方法を示します。

C 言語でファイルに書き込むには fwrite 関数を使用する

C 言語の標準 I/O ライブラリには、ファイルを読み書きするためのコア関数である freadfwrite が用意されています。fwrite は 4つの引数、データを取得するためのポインタ void、指定されたポインタのデータ要素のサイズと数、出力ファイルストリームのためのポインタ FILE* です。

ファイルストリームはまず fopen 関数で開かれなければならないことに注意してください。この場合、読み書きのためにファイルを開くには w+ モードを使用します。ただし、ファイルが存在しない場合は、与えられた名前で新しいファイルが作成されることに注意してください。次に、返されたファイルストリームポインタが有効かどうかをチェックします。そうでない場合、それは対応するエラーメッセージを表示し、プログラムを終了します。ファイルストリームポインタが有効であることが確認できたら、fwrite 関数を呼び出すことができます。プログラムが終了する前に fclose 関数を使ってファイルを閉じるべきであることに注意してください。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

const char* str = "Temporary string to be written to file!";

int main(void) {
  const char* filename = "out.txt";

  FILE* output_file = fopen(filename, "w+");
  if (!output_file) {
    perror("fopen");
    exit(EXIT_FAILURE);
  }

  fwrite(str, 1, strlen(str), output_file);
  printf("Done Writing!\n");

  fclose(output_file);
  exit(EXIT_SUCCESS);
}

C 言語でファイルに書き込むには write 関数を使用する

これは POSIX に準拠した関数呼び出しであり、ファイルディスクリプタで参照されるファイルに指定されたバイト数を書き込む。ファイルディスクリプタはオープンされたファイルストリームに関連付けられた整数であることに注意してください。ディスクリプタを取得するには、ファイル名のパスを指定して open 関数を呼び出す必要があります。関数 write は第 1 引数にファイルディスクリプタを、第 2 引数に void* で指定されたデータのバッファを取ります。第 3 引数はファイルに書き込むバイト数であり、以下の例では strlen 関数を用いて計算します。

#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

const char* str = "Temporary string to be written to file!";

int main(void) {
  const char* filename = "out.txt";

  int fd = open(filename, O_WRONLY);
  if (fd == -1) {
    perror("open");
    exit(EXIT_FAILURE);
  }

  write(fd, str, strlen(str));
  printf("Done Writing!\n");

  close(fd);
  exit(EXIT_SUCCESS);
}
著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook

関連記事 - C File