我正在学习C,正在尝试读取文件的内容;我不明白为什么该函数不填充字符串并读取0
字节。但是,我想我已经阅读了手册。
char *read_file(const char *filename)
{
int file;
int nb;
off_t size;
char *buffer;
file = open(filename, O_RDONLY);
if (file < 0)
return (NULL);
size = lseek(file, 0, SEEK_END);
buffer = (char*)malloc(sizeof(char) * (size + 1));
if (buffer == NULL)
return (NULL);
if ((nb = read(file, buffer, size)) < 0)
return (NULL);
close(file);
buffer[size] = '\0';
return (buffer);
}