首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >glibc 2.23的行为变化

glibc 2.23的行为变化
EN

Stack Overflow用户
提问于 2016-04-26 18:05:35
回答 1查看 197关注 0票数 2

从2.23开始,glibc似乎已经改变了使用fmemopen创建的流的行为,因为它将位置重置为0。我在变更日志中看到,fmemopen的实现被更新以修复一堆错误,但是这些bug都没有提到这种行为,对我来说,这似乎是一个不正确的更改。我一直在试图确定这是一个新的错误,还是一个正确的修复方法。我自己的代码依赖于旧的行为,在我更新到Ubuntu16.04之后就崩溃了,Ubuntu16.04附带了glibc 2.23。有人知道这件事吗?

下面是一些示例代码:

代码语言:javascript
复制
char buffer[500] = "x";
FILE *stream;
stream = fmemopen(buffer, 500, "r+");

fwrite("fish",sizeof(char),5,stream);
printf("pos-1:%ld\n",ftell(stream));
fflush(stream);
printf("pos-2:%ld\n",ftell(stream));

在早期版本(例如,在ubuntu 5.10<下),这将导致:

代码语言:javascript
复制
pos-1:5
pos-2:5

现在它返回:

代码语言:javascript
复制
pos-1:5
pos-2:0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 20:53:38

结果是2.23中的一个bug。错误被记录并已修复。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36872541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档