glibc相关内容
我用getpwnam_r来处理我的程序客户端连接。可悲的是,它似乎分配它永远不会释放缓冲区。 有关Valgrind的输出: == == 15774 536(104直接,间接432)的2块字节肯定是失去了在负的战绩1 3 == == 15774在0x4C24CFE:的malloc(以/usr/lib64/valgrind/amd64-linux/vg$p$pload_memcheck.so)
..
是GNU功能 asprintf (打印分配的字符串)是线程安全的? (IIC,基本上,这归结为这个问题是否的malloc 是线程安全的。) 考虑例如code: 的#define _GNU_SOURCE #包括LT&;&stdio.h中GT;#包括“getValue.h”字符*的getValue(INT键){ 字符*值; asprintf(安培;价值,“%D”键); // TODO:没
..
下面是我在浏览来源:
..
我想破解使用瓦拉现有GLib的基于C语言的项目。 我在做基本上是什么,我的构建过程的开始,利用华劣克从我.vala文件生成.c和.h文件,然后就编译生成的文件的方式我想任何.c和。 .h文件。 这可能不是最好的办法,但似乎大部分被好吗工作。 我的问题是,我有一个很难从我的瓦拉code访问我现有的C code。有没有一种简单的方法来做到这一点? 我试着写我自己的.vapi文件(我没有与同VA
..
我建了最新的glibc,现在我遇到了一些麻烦,在coreutils的功能,如 LS 或猫或其他任何类似 VIM 。 我的误差 -bash-4.0 $猫 猫:错误而载入共享库:__vdso_time:对dlopen()的无效的模式:无效的参数 和我建,glibc的不与下面的configure错误 ../的glibc /配置 - preFIX = /家庭/ EX / uid377 / gl
..
我试图从内部访问它 .eh_frame 正在运行的程序的部分内容(具体程序是Linux内核2.6.34.8)。在 .eh_frame 包含用于异常处理有用的数据,我想内核code内内部使用它。本节已经被写了 GCC ( readelf -a vmlinux.o 包含 .eh_frame ),问题是从code阅读。我是pretty确保ELF格式文档说 .eh_frame 为code执行期间访问。
..
考虑以下code: 的#include<&stdio.h中GT; #包括LT&;&time.h中GT; #包括LT&;&math.h中GT;//编译使用gcc -lrt -lm -o test_clock test_clock.c#定义时钟CLOCK_MONOTONICINT主(INT ARGC,字符** argv的){ 双温度,已过; 诠释J; 结构的timesp
..
我遇到一个奇怪的问题,在我的系统时钟都知道,它是夏令时,但glibc的似乎没有。这是一个上最新的Ubuntu安装,我已经检查的/ etc /本地时间,它有正确的转换时间为上周的切换到DST。 我目前正确的时区为太平洋夏令时(UTC-7)。当我问我的系统我在什么时间段,它告诉我正确的: $日期+%Z -0700 但是当我运行下面的程序:的#include<&time.h中GT; #包
..
我有一个使用mmap系统调用的应用程序,我在得到它的编译看,为什么我是越来越MAP_ANON和MAP_ANONYMOUS是未申报时间的问题,我不得不code的一小部分,我使用我看到我可以编译它只是罚款,所以我尝试只是一个基本的编译和工作,我看到,当您添加-std = C99失败。是否有一个具体的原因,MAP_ANON和MAP_ANONYMOUS是无效的C99标准?我知道他们不是POSIX定义,但通
..
在标准库(glibc的)我看到 SYS / mman.h __ MMAP C $ C>。什么目的?我们怎么还调用函数 MMAP 这似乎并没有在任何地方声明。我的意思是,我们包括 SYS / mman.h 对于这一点,但 SYS / mman.h 未声明 MMAP ,它宣称只有 __ MMAP 。 解决方案 从GNU手册: 在除本手册中介绍的名称,保留名称 包括所有外部标识符(全局函
..
我一直在寻找的glibc / NPTL的实现取消点,并将其与POSIX,除非我弄错这是完全错误的。所使用的基本模式是: INT OLDTYPE = LIBC_ASYNC_CANCEL(); / *切换到异步消除模式* / INT结果= INLINE_SYSCALL(...); LIBC_CANCEL_RESET(OLDTYPE); 据POSIX: 在取消请求作用而功能在通话过程中悬
..
这是经常被忽略,无需外部库,但基本没有任何文件的功能。 解决方案 更新(2010-10-11):Linux手册的页面现在有getaddrinfo_a的文档,你可以在这里找到:
..
我的情况是pretty简单:我想我的C ++程序来处理Unix的信号。要做到这一点,glibc的提供signal.h中的函数叫做的sigaction ,它预计将收到一个函数指针作为其第二个参数。 的extern“C” { 无效uponSignal(INT); }无效uponSignal(INT) { //设置一些标志来退出程序 }静态的 无效installSignalHandler()
..
我想创建一个临时目录,在它执行某些操作,然后删除整个事情的结束。我用C语言在UNIX系统上,所以我想有一些符合这个环境。 什么是编程最好的方法? 修改 我真的需要一个目录,不仅是一个文件。这种小程序的目的是尝试,如果我能SVN项目的结账执行。因此,它应该能够创建文件和目录的全部层次。 解决方案 我建议从C API常用功能一起使用 mkdtemp()函数(的glibc )。这是一个完整
..
我第一次注意到它,而与广发行的 rbreak玩,然后做了一个小例子: (GDB)文件hello_world.out 阅读从hello_world.out符号......完成。 (GDB)b _init 在0x4003e0断点1 (GDB)b _start 2断点在0x400440 (GDB)运行 启动程序:/home/ciro/bak/git/cpp/cheat/gdb/hello_world.
..
有一个动态数组在glibc的实现或任何标准的Linux库的C?我希望能够添加到列表中,而不必担心它的大小。我知道性病::矢量存在C ++,但我需要C等价的。 解决方案 我猜你所想的的realloc 。但是它能够更好地包装结构中的列表的保持其当前长度的轨道 例API 结构s_dynamic_array { 诠释分配; / *保持分配大小的轨道* / INT usedLen
..
的获得函数是第一代precated在C99终于在C11中删除。然而,有C库它没有直接更换。 与fgets()不是一个简易替换,因为它不会删除最后一个的'\\ n' ,这可能是在文件的结尾不存在。许多程序员搞错了。 有一个单行除去换行: BUF [strcspn(BUF,“\\ n”)] ='\\ 0'; ,但它是不-trivial并经常要求一个解释。它可能是低效的,以及 这是适得其反。很多初
..
抱歉,我知道这是愚蠢的,但在这里是Linux的libc源$ C $ C可用?似乎我从GNU下载没有成为我想要的东西,特别是我能找到什么在pthreads的函数族。 有一个在线(hypertexted交叉引用)版本的地方? 解决方案 大多数Linux版本使用名为libc的版本的glibc 。 有关的glibc的LXR(在线交叉参考系统)是如这里 http://koala.cs.pub
..
我有我的系统上安装了两个GCC编译器,一个是 GCC 4.1.2 (默认值),另一种是 GCC 4.4.4 。如何检查所使用的版本的libc GCC 4.4.4 ,因为 /lib/libc.so.6 节目使用 GCC 4.1.2 glibc的,因为它是默认的编译器。 解决方案 编写一个测试程序(将其命名例如的glibc-version.c ) 的#include<&stdio.h中
..
所以我一直在寻找通过Linux的glibc源,我没有看到它实际上做任何事情。以下是从 IO / chdir.c ,但它表明许多源文件的。这里发生了什么?显然,我失去了一些东西。秘诀是什么,它在哪里进行系统调用或实际做点什么? stub_warning 是一些旧的疯狂。 __ set_errno 似乎是一个简单的宏,设置错误号。虽然我找到一万个用法 weak_alias 我没有看到它的任何地方
..