在 Linux 中,read()
是一個系統調用,用于從文件描述符(file descriptor)中讀取數據
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t count);
參數說明:
fd
:文件描述符,表示要讀取的文件或其他輸入源。buf
:指向緩沖區的指針,用于存儲從文件描述符中讀取的數據。count
:要讀取的字節數。返回值:
count
)。errno
變量以指示錯誤原因。下面是一個簡單的示例,展示了如何使用 read()
函數從標準輸入(文件描述符為 0)讀取一行文本:
#include<stdio.h>
#include <unistd.h>
#include<string.h>
int main() {
char buffer[1024];
ssize_t bytes_read;
printf("Enter some text: ");
bytes_read = read(0, buffer, sizeof(buffer) - 1); // 減 1 是為了保留空間存放 '\0'
if (bytes_read == -1) {
perror("Error reading from stdin");
return 1;
}
buffer[bytes_read] = '\0'; // 添加字符串結束符
printf("You entered: %s", buffer);
return 0;
}
請注意,這個示例沒有處理 read()
返回的字節數小于請求的字節數的情況。在實際應用中,你可能需要根據需求進行相應的處理。