在C語言中,read()
函數用于從文件描述符中讀取數據。它的原型如下:
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
參數解釋:
fd
:要讀取的文件描述符,可以是標準輸入(0)、標準輸出(1)或者標準錯誤(2),或者是通過open()
函數打開的文件描述符。buf
:用于接收讀取數據的緩沖區的指針。count
:要讀取的字節數。返回值解釋:
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()
函數關閉了文件描述符。