当前位置: 技术问答>linux和unix
-D_FILE_OFFSET_BITS=64 的BUG有人遇到没
来源: 互联网 发布时间:2017-03-30
本文导语: bug_ex.c #include #include #include #include void bug2(void *a,void *b,uint64_t offset,uint64_t size,void *fp,int ver) { printf("fp:%pn",fp); } bug.c #include #include #include #include void bug1(void *a,void *b,uint64_t offset,uint64_t size,void *fp...
bug_ex.c
bug.c
Makefile
我在ubuntu11.10,gcc 4.6.1上make编译后执行后
./bug
fp:0x80ea028
fp:0x1
两个函数打印不同。
有人遇到过这种问题吗?
#include
#include
#include
#include
void bug2(void *a,void *b,uint64_t offset,uint64_t size,void *fp,int ver)
{
printf("fp:%pn",fp);
}
bug.c
#include
#include
#include
#include
void bug1(void *a,void *b,uint64_t offset,uint64_t size,void *fp,int ver)
{
printf("fp:%pn",fp);
}
int main()
{
void *a = malloc(1);
void *b = malloc(1);
void *fp = malloc(1);
off_t offset = 1;
size_t size = 1;
bug1(a,b,offset,size,fp,1);
bug2(a,b,offset,size,fp,1);
free(a);
free(b);
free(fp);
return 0;
}
Makefile
all:bug bug.asm
bug.asm:bug
objdump -SD bug >bug.asm
bug:bug.o bug_ex.o
gcc -g -o bug bug.o bug_ex.o
bug.o:bug.c
gcc -g -D_FILE_OFFSET_BITS=64 -c bug.c
bug_ex.o:bug_ex.c
gcc -g -D_FILE_OFFSET_BITS=64 -c bug_ex.c
clean:
rm -f bug.o bug_ex.o bug bug.asm
我在ubuntu11.10,gcc 4.6.1上make编译后执行后
./bug
fp:0x80ea028
fp:0x1
两个函数打印不同。
有人遇到过这种问题吗?
|
犀利,,学习下。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。