C言語のopen関数の使い方を詳しく解説

この記事では、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関数の使い方です。

ファイルの読み込みには、これらの関数を適切に組み合わせて使用してください。

1 2 3 4

目次から探す