我正在經歷多次呼叫read_from_fd導致數據爲空。從文件讀取多次失敗(需要char陣列malloc?)
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
int fd;
void read_from_fd() {
char data[2];
read(fd, data, 1);
data[1] = 0x00;
printf("data %s\n", data);
}
int main(void) {
fd = open("test.txt", O_RDWR);
read_from_fd();
read_from_fd();
read_from_fd();
}
因此,第一次讀取打印數據,但第二次和第三次打印空的東西。
我想這必須做一些從char的內存。它是否正確?我需要做些什麼來解決這個問題?
博多
你能顯示輸入文件嗎?如果文件中只有一個字符,那麼顯然你只會得到一次。如果你想多次,你必須使用lseek – cgledezma
@cgledezma重置搜索指針,這似乎是問題!你能創建一個答案,以便我可以標記它嗎? – bodokaiser