C言語のread関数の利用法は?

C言語では、read()関数はファイル記述子からデータを読み込みます。そのプロトタイプは以下の通りです。

#include <unistd.h>

ssize_t read(int fd, void *buf, size_t count);

パラメータの説明:

  1. fd: 読み込み対象のファイル記述子で、標準入力(0)、標準出力(1)、標準エラー(2)のいずれか、または open() 関数で開かれたファイル記述子です。
  2. 読み取りデータを受け取るためのバッファー用のポインターは buf です。
  3. カウント: 読み取るべきバイト数。

返り値の説明:

  1. データの読み取りが成功した場合、実際に読み取られたバイト数を返します。
  2. ファイルの末尾に達した場合は0を返す。
  3. エラーが発生したら、-1を返してerrno変数に具体的なエラー原因を設定します。

使用例:

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

int main() {
    int fd = open("file.txt", O_RDONLY); // 打开文件
    if (fd == -1) {
        perror("open");
        return 1;
    }

    char buf[1024];
    ssize_t bytesRead = read(fd, buf, sizeof(buf)); // 从文件中读取数据
    if (bytesRead == -1) {
        perror("read");
        return 1;
    }

    printf("Read %zd bytes: %s\n", bytesRead, buf);

    close(fd); // 关闭文件

    return 0;
}

上記の例では、最初に open 関数でファイルを開き、ファイル記述子 fd を取得しています。その後、 read 関数でファイルからデータを読み込み、読み込んだデータをバッファ buf に格納します(最大 sizeof(buf) バイト読み込みます)。最後に、 printf 関数で読み込んだバイト数とデータの内容を出力しています。最後に、 close 関数でファイル記述子を閉じます。

bannerAds