この記事では、C言語のopen関数
を使用してファイルの読み込み、書き込み、追記、クローズの方法を学ぶことができます。
ファイルの操作について初めて学ぶ方にもわかりやすく解説していますので、ぜひ参考にしてください。
open関数とは
open関数
は、ファイルを開くための関数です。
C言語の標準ライブラリで提供されており、ファイルの読み書きや作成、削除などの操作を行う際に使用されます。
open関数の概要
open関数
は、以下のような形式で使用します。
#include <fcntl.h>
int open(const char *pathname, int flags);
open関数
は、成功した場合にファイルディスクリプタ(整数値)を返し、失敗した場合に-1を返します。
ファイルの読み込み
open関数
の基本的な使い方は以下の通りです。
#include <fcntl.h>
int open(const char *pathname, int flags);
open関数
は、引数としてファイルのパス名とフラグを受け取ります。
ファイルのパス名は、読み込むファイルの場所と名前を指定します。
フラグは、ファイルのオープンモードを指定します。
ファイルモードの指定方法
open関数
の第2引数には、ファイルのオープンモードを指定するフラグを指定します。
以下によく使用されるフラグを示します。
フラグ | 説明 |
---|---|
O_RDONLY | 読み込み専用でファイルを開く |
O_WRONLY | 書き込み専用でファイルを開く |
O_RDWR | 読み書き両方でファイルを開く |
O_CREAT | ファイルが存在しない場合に新しく作成する |
O_APPEND | ファイルの末尾に追記する |
これらのフラグは、ビット演算子を使用して組み合わせることもできます。
たとえば、読み書き両方でファイルを開き、ファイルが存在しない場合に新しく作成する場合は、以下のように指定します。
int fd = open("sample.txt", O_RDWR | O_CREAT);
ファイルの読み込み方法
ファイルを読み込むためには、open関数
でファイルを開いた後、read関数
を使用します。
read関数
は、指定されたファイルディスクリプタからデータを読み込みます。
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
read関数
は、引数としてファイルディスクリプタ、読み込んだデータを格納するバッファ、読み込むバイト数を受け取ります。
戻り値として、実際に読み込んだバイト数が返されます。
以下に、ファイルを読み込むサンプルコードを示します。
#include <fcntl.h>
#include <unistd.h>
int main() {
int fd = open("sample.txt", O_RDONLY);
if (fd == -1) {
perror("open");
return 1;
}
char buf[256];
ssize_t bytesRead = read(fd, buf, sizeof(buf));
if (bytesRead == -1) {
perror("read");
return 1;
}
printf("読み込んだデータ: %s\n", buf);
close(fd);
return 0;
}
このサンプルコードでは、sample.txt
というファイルを読み込み専用で開き、読み込んだデータをbufに格納しています。
最後に、ファイルを閉じるためにclose関数
を呼び出しています。
以上が、C言語でファイルを読み込むためのopen関数
とread関数
の使い方です。
ファイルの読み込みには、これらの関数を適切に組み合わせて使用してください。