c - 在小文件中读取c中的文件时出现分段错误
问题描述
我在读取文件时在 c 中遇到了分段错误(核心转储)。我将此代码用于其他数百万个文件,它工作正常。但是当其他文件从 250 开始时,这个文件有 138 行。所以我猜这就是问题所在?(代码在我帖子的底部)它假设可以帮助我处理读取的数据,这样我就可以在代码中对它们进行操作,但无论我做什么,它都只是“核心转储”
它在这里中断:
while (fgets(line, sizeof line, fp) != NULL) {
strtok(line, "\n");
parseLine(line, &dataList);
}
我已经尝试过:
char *line = malloc( sizeof(char) * ( LINE_BUFFER + 1 )
代替
char line[LINE_BUFFER];
这是读取文件的代码部分:
#define DIFF_BUFFER 99999999
DataLineNode *loadData(const char *fileName) {
FILE *fp;
char line[LINE_BUFFER];
DataLineNode *dataList = NULL;
fp = fopen(fileName, "r");
if (fp == NULL) {
printf("No file '%s'.\n", fileName);
exit(EXIT_FAILURE);
}
while (fgets(line, sizeof line, fp) != NULL) {
strtok(line, "\n");
parseLine(line, &dataList);
}
fclose(fp);
return dataList;
}
````
解决方案
推荐阅读
- oracle - Oracle 将函数转换为触发器
- react-hooks - 在这种情况下,如何根据特定属性使用不同样式渲染数组 message.senderEmail
- javascript - 获取请求应返回字符串化值并分配给变量
- c# - 无法在 Azure AD B2C 属性中通过 Graph API 创建用户不存在
- javascript - 使用服务器端行模型呈现所有行后触发的 Ag-Grid 事件
- sql-server - MS SQL Server:当值是唯一结果时计算值
- json - 使用 twig include 将静态 json 文件中的 json 添加到 index.twig
- sql - 出现错误 Ora-1489:当我使用 LISTAGG 时,连接的字符串太长
- oracle - 带有 dbms_scheduler 的嵌套链,无法控制步骤的顺序
- javascript - 如何添加
标记项目以动态下拉列表