glibc相关内容

getpwnam_r内存泄漏

我用getpwnam_r来处理我的程序客户端连接。可悲的是,它似乎分配它永远不会释放缓冲区。 有关Valgrind的输出: == == 15774 536(104直接,间接432)的2块字节肯定是失去了在负的战绩1 3 == == 15774在0x4C24CFE:的malloc(以/usr/lib64/valgrind/amd64-linux/vg$p$pload_memcheck.so) ..
发布时间:2016-08-22 14:33:20 C/C++

是'asprintf`线程安全的?

是GNU功能 asprintf (打印分配的字符串)是线程安全的? (IIC,基本上,这归结为这个问题是否的malloc 是线程安全的。) 考虑例如code: 的#define _GNU_SOURCE #包括LT&;&stdio.h中GT;#包括“getValue.h”字符*的getValue(INT键){ 字符*值; asprintf(安培;价值,“%D”键); // TODO:没 ..
发布时间:2016-08-21 22:42:48 C/C++

瓦拉VAPI文件文档

我想破解使用瓦拉现有GLib的基于C语言的项目。 我在做基本上是什么,我的构建过程的开始,利用华劣克从我.vala文件生成.c和.h文件,然后就编译生成的文件的方式我想任何.c和。 .h文件。 这可能不是最好的办法,但似乎大部分被好吗工作。 我的问题是,我有一个很难从我的瓦拉code访问我现有的C code。有没有一种简单的方法来做到这一点? 我试着写我自己的.vapi文件(我没有与同VA ..
发布时间:2016-08-21 22:17:12 C/C++

__vdso_time从核心utils的缺失?

我建了最新的glibc,现在我遇到了一些麻烦,在coreutils的功能,如 LS 或猫或其他任何类似 VIM 。 我的误差 -bash-4.0 $猫 猫:错误而载入共享库:__vdso_time:对dlopen()的无效的模式:无效的参数 和我建,glibc的不与下面的configure错误 ../的glibc /配置 - preFIX = /家庭/ EX / uid377 / gl ..
发布时间:2016-08-21 22:16:21 服务器开发

访问执行过程中.eh_frame数据

我试图从内部访问它 .eh_frame 正在运行的程序的部分内容(具体程序是Linux内核2.6.34.8)。在 .eh_frame 包含用于异常处理有用的数据,我想内核code内内部使用它。本节已经被写了 GCC ( readelf -a vmlinux.o 包含 .eh_frame ),问题是从code阅读。我是pretty确保ELF格式文档说 .eh_frame 为code执行期间访问。 ..
发布时间:2016-08-21 21:55:07 C/C++

如何睡几微秒

考虑以下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 ..
发布时间:2016-08-21 21:14:22 服务器开发

为什么glibc的"时区"全球不与系统时间DST同意吗?

我遇到一个奇怪的问题,在我的系统时钟都知道,它是夏令时,但glibc的似乎没有。这是一个上最新的Ubuntu安装,我已经检查的/ etc /本地时间,它有正确的转换时间为上周的切换到DST。 我目前正确的时区为太平洋夏令时(UTC-7)。当我问我的系统我在什么时间段,它告诉我正确的: $日期+%Z -0700 但是当我运行下面的程序:的#include<&time.h中GT; #包 ..
发布时间:2016-08-21 21:13:34 C/C++

MAP_ANONYMOUS与C99标准

我有一个使用mmap系统调用的应用程序,我在得到它的编译看,为什么我是越来越MAP_ANON和MAP_ANONYMOUS是未申报时间的问题,我不得不code的一小部分,我使用我看到我可以编译它只是罚款,所以我尝试只是一个基本的编译和工作,我看到,当您添加-std = C99失败。是否有一个具体的原因,MAP_ANON和MAP_ANONYMOUS是无效的C99标准?我知道他们不是POSIX定义,但通 ..
发布时间:2016-08-21 20:52:34 C/C++

双下划线在年初含义

在标准库(glibc的)我看到 SYS / mman.h __ MMAP C $ C>。什么目的?我们怎么还调用函数 MMAP 这似乎并没有在任何地方声明。我的意思是,我们包括 SYS / mman.h 对于这一点,但 SYS / mman.h 未声明 MMAP ,它宣称只有 __ MMAP 。 解决方案 从GNU手册: 在除本手册中介绍的名称,保留名称 包括所有外部标识符(全局函 ..
发布时间:2016-08-21 20:11:06 服务器开发

POSIX取消点应该如何表现?

我一直在寻找的glibc / NPTL的实现取消点,并将其与POSIX,除非我弄错这是完全错误的。所使用的基本模式是: INT OLDTYPE = LIBC_ASYNC_CANCEL(); / *切换到异步消除模式* / INT结果= INLINE_SYSCALL(...); LIBC_CANCEL_RESET(OLDTYPE); 据POSIX: 在取消请求作用而功能在通话过程中悬 ..
发布时间:2016-08-21 19:54:48 服务器开发

C链接传递给C库函数指针

我的情况是pretty简单:我想我的C ++程序来处理Unix的信号。要做到这一点,glibc的提供signal.h中的函数叫做的sigaction ,它预计将收到一个函数指针作为其第二个参数。 的extern“C” { 无效uponSignal(INT); }无效uponSignal(INT) { //设置一些标志来退出程序 }静态的 无效installSignalHandler() ..
发布时间:2016-08-19 13:35:14 C/C++开发

如何创建在C临时目录?

我想创建一个临时目录,在它执行某些操作,然后删除整个事情的结束。我用C语言在UNIX系统上,所以我想有一些符合这个环境。 什么是编程最好的方法? 修改 我真的需要一个目录,不仅是一个文件。这种小程序的目的是尝试,如果我能SVN项目的结账执行。因此,它应该能够创建文件和目录的全部层次。 解决方案 我建议从C API常用功能一起使用 mkdtemp()函数(的glibc )。这是一个完整 ..
发布时间:2016-08-19 00:28:37 服务器开发

是否有一个自动调整大小的数组/动态数组的C实现自带的glibc的?

有一个动态数组在glibc的实现或任何标准的Linux库的C?我希望能够添加到列表中,而不必担心它的大小。我知道性病::矢量存在C ++,但我需要C等价的。 解决方案 我猜你所想的的realloc 。但是它能够更好地包装结构中的列表的保持其当前长度的轨道 例API 结构s_dynamic_array { 诠释分配; / *保持分配大小的轨道* / INT usedLen ..
发布时间:2016-08-18 23:16:11 C/C++

由于C标准委员会没有规范的简单替代得到(),有什么应该是什么?

的获得函数是第一代precated在C99终于在C11中删除。然而,有C库它没有直接更换。 与fgets()不是一个简易替换,因为它不会删除最后一个的'\\ n' ,这可能是在文件的结尾不存在。许多程序员搞错了。 有一个单行除去换行: BUF [strcspn(BUF,“\\ n”)] ='\\ 0'; ,但它是不-trivial并经常要求一个解释。它可能是低效的,以及 这是适得其反。很多初 ..
发布时间:2016-08-18 22:50:47 C/C++

libc的源位置 - 通过下载或在线观看?

抱歉,我知道这是愚蠢的,但在这里是Linux的libc源$ C ​​$ C可用?似乎我从GNU下载没有成为我想要的东西,特别是我能找到什么在pthreads的函数族。 有一个在线(hypertexted交叉引用)版本的地方? 解决方案 大多数Linux版本使用名为libc的版本的glibc 。 有关的glibc的LXR(在线交叉参考系统)是如这里 http://koala.cs.pub ..
发布时间:2016-08-18 22:19:40 服务器开发

检查glibc的版本为特定的gcc编译器

我有我的系统上安装了两个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中 ..
发布时间:2016-08-18 22:06:01 C/C++

哪里位于glibc的源系统调用

所以我一直在寻找通过Linux的glibc源,我没有看到它实际上做任何事情。以下是从 IO / chdir.c ,但它表明许多源文件的。这里发生了什么?显然,我失去了一些东西。秘诀是什么,它​​在哪里进行系统调用或实际做点什么? stub_warning 是一些旧的疯狂。 __ set_errno 似乎是一个简单的宏,设置错误号。虽然我找到一万个用法 weak_alias 我没有看到它的任何地方 ..
发布时间:2016-08-18 14:45:46 服务器开发