在C++中,read()
函數(shù)通常與文件描述符一起使用,用于從文件或其他類(lèi)型的輸入源(如管道、套接字等)讀取數(shù)據(jù)
#include<iostream>
#include <fcntl.h> // 包含文件控制函數(shù),如 open()
#include <unistd.h> // 包含 read() 和 close() 函數(shù)
int main() {
const char *file_path = "example.txt"; // 要打開(kāi)的文件路徑
int file_descriptor; // 文件描述符
char buffer[1024]; // 存儲(chǔ)讀取數(shù)據(jù)的緩沖區(qū)
ssize_t bytes_read; // 實(shí)際讀取到的字節(jié)數(shù)
// 以只讀模式打開(kāi)文件,獲取文件描述符
file_descriptor = open(file_path, O_RDONLY);
if (file_descriptor == -1) {
std::cerr << "Error opening file: "<< file_path<< std::endl;
return 1;
}
// 使用 read() 函數(shù)讀取文件內(nèi)容
bytes_read = read(file_descriptor, buffer, sizeof(buffer) - 1);
if (bytes_read == -1) {
std::cerr << "Error reading from file: "<< file_path<< std::endl;
close(file_descriptor);
return 1;
}
// 確保字符串以空字符結(jié)尾
buffer[bytes_read] = '\0';
// 處理讀取到的數(shù)據(jù),例如將其輸出到控制臺(tái)
std::cout << "File content: "<< buffer<< std::endl;
// 關(guān)閉文件描述符
close(file_descriptor);
return 0;
}
這個(gè)示例展示了如何在C++中使用 read()
函數(shù)從文件讀取數(shù)據(jù)。首先,我們使用 open()
函數(shù)以只讀模式打開(kāi)文件,并獲取文件描述符。然后,我們使用 read()
函數(shù)從文件描述符讀取數(shù)據(jù)到緩沖區(qū)。最后,我們處理讀取到的數(shù)據(jù)(在這個(gè)例子中,我們將其輸出到控制臺(tái)),并使用 close()
函數(shù)關(guān)閉文件描述符。