glibc相关内容
我试图编译Linux下的C程序。然而,出于好奇,我试图用手来执行一些步骤:我使用的: gcc的前端,产生汇编code 然后运行GNU汇编获取对象文件 然后再与C运行时链接它得到一个工作的可执行文件。 现在我被困在连接的部分。 该计划是一个非常基本的“Hello world”: 的#include<&stdio.h中GT; 诠释主(){ 的printf(“你好\\ n
..
我需要静态链接glibc的到我的项目,因为目标平台只支持一个很旧的(但它与静态链接glibc的作品从我的工具链,我已签吧) 不幸的是,此应用程序有权使用pthread库,但静态链接的libpthread需要太多的地方。 我想静态链接glibc的,动态的pthread。 运行这个命令之后 PowerPC的未知Linux的GNU-GCC object_files -lrt -lpthread
..
的的strlen()从K&安培; R只需要几行。 INT的strlen(字符* S) { 字符* P = S; 而(* P!='\\ 0') p ++; 返回对 - S; } 但 glibc的版本更长的时间。为简单起见,我删除了所有的意见和64位实现,提取的版本的strlen()是这样的:为size_t strlen的(为const char *海
..
我有一个小的C程序来计算哈希值(哈希表)。在code看起来挺干净的,我希望,但有一些无关的它,是缠着我。 我可以很容易地产生约0.2-0.3秒,约一百万哈希值(与基准的/ usr / bin中/时间)。然而,当我的printf()在for循环inging他们,程序减慢至约5秒。 这是为什么? 如何使它更快吗? mmapp()ING标准输出可能? 如何stdlibc在关于这个设计的,怎么
..
我试图找到glibc的源$ C $ C选择()源$ C $ C(Linux操作系统,i386的弓), 但我无法找到任何(与该架构) 可能有人点我的选择()源$ C $ C? 解决方案 选择()不是libc中的功能,但是内核函数,所以你需要看看到内核源代码。 您可以通过查看手册页告诉这一点:如果是在第2节,这是一个内核函数,如果是在第3节,这是标准C库的函数,你的情况gli
..
我意识到,任何这样的功能很可能是非标准,但没关系我的用例。基本上,我需要一种方法,我可以传递一个指针,返回的大小(即是由previous调用返回的malloc()函数的指针)(即使它通过的glibc的系统调用()接口只露)方框在指针指向。难道这样的事情存在? 解决方案 据我所知,至少有在C90 / C99无此功能。有些系统,主要是libc中,提供的功能来获得分配的大小(例如malloc_s
..
我有一些结构,我需要经常打印。现在,我使用的是传统的印刷包装解决此结构: 无效printf_mystruct(结构* my_struct) { 如果(my_struct == NULL)回报; 的printf(“[值1:%d个VALUE2数:%d]”,struct->值1,struct->值2); } 此功能是方便,但也实在有限。我不能prepen或追加一些文本而不进
..
我已经建立的glibc 2.14,并在目录中安装了〜/ GLIBC / glibc_install 。现在我想建立和运行使用此C库,而不是我的系统默认的C库程序。 要确保我是用我的自定义的glibc,我加入到看跌期权的呼叫到的glibc / STDIO常见/ printf.c:__的printf 打印一个消息。 然后我重建和重新安装glibc的。 然后我写了一个“Hello,Wo
..
我试图做一个可执行这就是尽可能携带。 :删除一些依赖关系之后,我遇到以下运行的另一个系统上的二进制来时 /lib/x86_64-linux-gnu/libm.so.6:版本`GLIBC_2.15'未找到(必填通过foob) /lib/x86_64-linux-gnu/libc.so.6:版本`GLIBC_2.15'未找到(由foob要求) /lib/x86_64-linux-gnu/libc.
..
(正确的code在“更新5') 我试图的范围内0x100000000存储器在该例C code映射到0x200000000 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括LT&;&stdint.h GT; #包括LT&; SYS / mman.h>INT主要(无效) { uint64_t中* rr_addr = 0; u
..
我想用 CPU_SET ,这是一个应该在 sched.h中该手册页明确指出, _GNU_SOURCE 必须定义,这样的宏定义。然而,看着头, CPU_SET 定义只有当 __ USE_GNU 定义(有一个 #IFDEF 后卫)。我似乎在几年前的 _GNU_SOURCE 需要记住。 问题: 1)明确的联机帮助页关闭。我如何通知维护人员的手册页是不正确的? 2)什么时候从 _GNU_SOURCE
..
我是IM pression的羊群(2)是线程下安全起见,我最近,跑过在code,其中多个线程都能够得到上都与使用使用C API羊群获得独占锁的同步同一个文件锁的情况。该过程25554是多线程应用程序,它具有20个线程,当死锁发生具有锁定到同一文件的线程数而变化。在多线程应用程序的 testEvent 的是作家的文件,其中是推的是从文件中读取。不幸的是, lsof的不打印LWP值,因此我无法找到它们
..
我使用GCC 4.8,并在一个x86_64的glibc的2.19 Linux操作系统。 虽然与
..
我想编译我的C code无(G)的libc。我怎样才能将其停用,哪些功能取决于它? 我试过-nostdlib但它没有帮助:code是编译和运行,但我仍然可以找到自己的可执行文件的hexdump都libc中的名称。 解决方案 如果您编译code。与-nostdlib,你将无法调用任何C库函数(当然),但你也不要“得到的,常规的C引导code。特别是,在Linux的节目的实际进入点是不mai
..
的您最有可能看到这个问题,因为你的问题已经关闭的这个副本。对于相关问题,适度的完整列表,请参阅
..
在Linux 3.0 / C ++: 我想,做如下的功能: 串f(字符串s) { 串R =系统(“富< S”); 返回ř; } 显然,上述方法不工作,但你的想法。我有一个,我想字符串s传递的应用“foo”的一个子进程执行的标准输入,然后我想它的标准输出记录到串R,然后返回。 我应该用什么样的组合的Linux系统调用或POSIX功能? 解决方案 由eerpini提供
..
所以每个人大概都知道的glibc的 /lib/libc.so.6 可以像在哪些情况下它打印其版本信息并退出一个正常的可执行shell执行。这是通过在所述的.so限定的入口点进行。对于某些情况下,它可能是有趣的,也将此信息用于其他项目。不幸的是,低级别的切入点,可以通过LD的-e选项设置是有点太低级:动态加载程序不可用,所以你不能调用任何适当的库函数。的glibc为此通过实施这个切入点赤裸裸的系统调
..
我有一个C ++库,提供各种类别的管理数据。我源$ C $ C的库。 我要扩展C ++ API来支持C函数调用,使得库可以与C code和C ++ code同时使用。 我使用GNU工具链(GCC,glibc的,等等),所以语言和架构的支持不是问题。 有什么原因,这就是技术上不可能? 是否有任何的疑难杂症的,我需要注意的? 是否有资源,例如:code和/或文档提供有关本? 这是我已经
..
我建立LFS和我在那里的部分,我们需要安装的Glibc-2.11.1
..
我试图交叉编译的glibc-2.18飞思卡尔PowerPC的评估板。 目前我得到下面的错误在构建的一个阶段: 的glibc 失败: ../sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S:汇编的消息: ../sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S:40:错误:对
..