我使用valgrind测试我的二进制文件时收到了以下消息:
==8454== Warning: invalid file descriptor 1024 in syscall close()
我打开一次,我关闭一次。下面的函数使用open()打开文件,获取内容,然后使用close()关闭文件。
int parse(t_struct *data)
{
int fd;
char *s;
if ((fd = open(data->file, O_RDONLY)) == -1)
{
fprintf(stderr, "Cannot open\n");
return (-1);
}
while ((s = gnl(fd)) != NULL)
{
if (list_add_elem_at_back(&data->list, s) == FALSE)
{
fprintf(stderr,"Cannot stock\n");
return (-1);
}
}
close(fd);
return (0);
}
有什么问题或困难?