C言語のread関数の利用法は?
C言語では、read()関数はファイル記述子からデータを読み込みます。そのプロトタイプは以下の通りです。
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
パラメータの説明:
- fd: 読み込み対象のファイル記述子で、標準入力(0)、標準出力(1)、標準エラー(2)のいずれか、または open() 関数で開かれたファイル記述子です。
- 読み取りデータを受け取るためのバッファー用のポインターは buf です。
- カウント: 読み取るべきバイト数。
返り値の説明:
- データの読み取りが成功した場合、実際に読み取られたバイト数を返します。
- ファイルの末尾に達した場合は0を返す。
- エラーが発生したら、-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 関数でファイル記述子を閉じます。