如何使用read()函数从C中的文件中读取数据



我想从文件中读取数据,我需要以二进制形式打开文件并一次读取数据块吗?

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc,char* argv[])
{
int n;
FILE * fp;
size_t nbyte;
unsigned char * buffer[1024];
fp=open("file_test.txt",O_RDONLY);
read(fp,buffer,1);  
printf("%sn",buffer[0]);
close(fp);

return 0;


}

open/readfopen/fread的POSIX版本,open不返回FILE*指针。

unsigned char * buffer[1024];用于字符串数组。你只需要一个缓冲unsigned char buffer[1024];

printf("%sn",...);用于打印c字符串,通常不能打印二进制数据。

int main(void)
{
int fin = open("file_test.txt", O_BINARY | O_RDONLY);
if (!fin)
return 0;
unsigned char buffer[1024];
while (1)
{
size_t size = read(fin, buffer,  sizeof(buffer));
if (size == 0) 
break;
for (size_t i = 0; i < size; i++)
printf("%02X ", buffer[i]);
//break; print the whole file!
}
close(fin);
return 0;
}

最新更新