由于工作需要,有时候得查看一些c库函数的实现,比如,现在要看isspace接口的实现, 在glibc的源码中找到如下: # define isspace(c) __isctype((c), _ISspace) int __isctype (ch, mask) int ch; int mask; { return (((uint16_t *) _NL_CURRENT (LC_CTYPE, _NL_CTYPE_CLASS) + 128) [(int) (ch)] & mask); } weak_alias (__isctype, isctype) 对于_NL_CURRENT我就无能为力了,找不着它究竟是干什么的。 然后我写...
by thelordsaves - C/C++ - 2012-04-06 22:10:01 阅读(3233) 回复(3)
glibc 的malloc源代码分析 有人写了一个测试程序 #include #include #include #include main() { int alloc_time = 20000; char* a[alloc_time]; char* b[alloc_time]; for(int j=0; j 发现该程序在测试机上运行会占用1G内存,不释放,为了解决这个问题,特别去研究了一下glibc中malloc的源代码。 一.对于小于128k的块在heap中分配。 1.堆是通过brk的方式来增长或压...
最近在看《追踪linux TCP IP代码运行》,里面第一章就降列举了socket()函数在glibc中是如何实现的。俺是从www.kernel.org。下载的Linux的3.3.5的源码,请问一下这个linux的源码和glibc的源码有啥区别。。。 俺认为是linux源码包含了glibc。。因为linux/net下就有socket.c文件,但是找来找去也没有找到书上写的那些代码。请问一下glibc和linux内核源码到底是啥关系 。。顺便请教下看linux网络的实现该从哪个方面入手,俺看了TCP...
本帖最后由 changyongID 于 2010-03-23 00:13 编辑
贴上代码之后,贴子显得比较长,但问题并不复杂。请各位看一下,问题描述如下
函数scandir一般是用来对指定目录排序中的。其在glibc中源码如下:[code]#include
因为工作需要安装ansys ,但是装完后发现需要的系统glibc版本要2.7 才行,现在的版本是2.5, 问题来了:怎样在保证安全(升级glibc的过程绝对不能让系统挂掉,因为有很多人在上面跑作业)的情况下升级到glibc—2.7,以便ansys能正常运行? 所以,1、怎样安全的安装一个辅助的glibc库,安装过程,安装失败,或安装成功接口的变化绝不会影响到使用系统其他人正在运行的作业?更不能导致系统崩溃? 2、怎样让新的glibc-2.7 只给ansy...
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/libc.so.6: version `glibc_2.11' not found