”本気で”エンジニアを目指すなら『TECH BOOST』キャリアから逆算された講座内容で、あなたの未来をサポートします!

【C言語超入門(第39回)】ファイルからの入出力の方法を学ぼう(オープン、クローズ編)

Pocket

C言語では、ファイルからデータを入出力することができます。

ただし、いきなりファイルからデータを読み込んだり、書き込んだりすることはできません。

ファイルからデータを入出力するには、ファイル入出力の手続きが必要です。

そこで今回のC言語超入門では、ファイルからの入出力をするための手続きである、
オープン処理とクローズ処理について解説をしていきます。

なお、ファイルから1文字を入出力する方法についてはC言語超入門(第40回)、ファイルから文字列を入出力する方法については C言語超入門(第41回)を参照くださいませ。

ファイル処理の手順

ファイルを入出力するための処理は、大まかに以下の流れになります。

  1. ファイルのオープン
  2. ファイルの読み込み/書き込み
  3. ファイルのクローズ

ファイルのオープン処理では、読み書きをしたいファイル名を指定して、そのファイルを操作するための識別子(ファイルポインタ)を取得します。

以後、このファイルポインタを使って、ファイルの読み書きを行います。

ファイルの入出力処理が終わったら、ファイルのクローズ処理を行い、ファイルポインタを解放します。

ファイルのオープンに失敗したとき

C言語では、ファイルのオープン処理に失敗したとき(例えば、指定したファイルが存在しない、など)、自動でエラー処理は行われません。

ファイルのオープンに失敗した場合の処理は、プログラマーが用意する必要があります。

ファイルのエラー処理を正しく行いませんと、ファイルを破壊する可能性もありますから、十分に気を配ってプログラミングをしてくださいませ。

ファイルオープン、クローズを行う関数

ファイルをオープンするにはfopen()関数、クローズするにはfclose()関数を使います。

以下にfopen()関数とfclose()関数の使い方について、ポイントを絞ってご説明いたします。

fopen()関数

書式:

FileNameで指定したファイルを、Modeで指定したファイルモードでオープンします。

ファイルモードには、以下があります。

・ “r” ・・・ ファイル読み込み(ファイルがないときはエラーになる)
・ “w” ・・・ ファイル書き込み(ファイルが存在するときはファイルサイズが0になり、存在しなければ新規に作成される)
・ “a” ・・・ ファイルの最後に追加(ファイルが存在しなければ新規に作成される)
※バイナリファイルの読み書きをする場合は、”rb”、”wb”、”ab”にする

fopen関数は、ファイルが正常にオープンできたならファイルポインタを、失敗したとき(エラーのとき)はNULLを返します。

ファイルの読み書きは、すべてfopen関数で取得したファイルポインタを使って行います。

fclose()関数

書式:

fopen()関数でオープンしたファイルの利用が終わったら、fclose()関数を使ってクローズします。

ファイルのクローズ処理に失敗したとき、fclose()関数はEOFを返します。

C言語超入門の第39回まとめ

さて今回のC言語超入門では、ファイルからの入出力をするための手続きである、
オープン処理とクローズ処理について解説してきましたが、いかがでしたでしょうか。

ファイルから入出力する方法のうち、ファイル入出力の基本となるファイルオープン処理とクローズ処理について、もう一度、整理しておきます。

・ ファイルからデータを入出力するには、ファイルのオープン処理・クローズ処理が必要
・ ファイルへの入出力は、ファイルのオープン処理で取得したファイル識別子を使う
・ ファイルのオープンに失敗したときは、プログラマーがエラー処理を記述しなければならない

なお、ファイルから1文字を入出力する方法についてはC言語超入門(第40回)、ファイルから文字列を入出力する方法については C言語超入門(第41回)を参照くださいませ。

ステップ・バイ・ステップ。焦らず一歩ずつ進んでいきましょう。

投稿者:プロナビ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

『TECH BOOST』なら、AI、IoT、ブロックチェーンなど最新技術が学べる!今流行りの技術を学んで、新たな一歩を踏み出そう!

プログラミングで挫折しそうなら、現役エンジニアにマンツーマンで相談してみませんか?オンラインのプログラミングスクール「TechAcademy」のメンターが対応。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る