libc相关内容

为什么ARGV参数execvp不是const的?

execvp是这样定义: INT execvp(为const char *文件,char * const的的argv []); 从正在使用precludes code像这样的:为const char * argv的[] = {“/斌/我的”,“命令”,“这里”,NULL}; execvp(的argv [0],argv的); 这是一个意外遗漏?它是安全的const_cast会解决此问题? ..
发布时间:2016-08-19 16:15:16 C/C++

什么是软,硬浮点数之间的区别?

当我编译C code。与我的交叉工具链,警告说我的可执行文件使用的硬盘花车,但我的libc中使用软花车的链接打印页面。有什么区别? 解决方案 硬彩车使用片上浮点单元。软花车效仿之一的软件。所不同的是速度。很奇怪地看到无论是在相同的目标架构使用,因为该芯片要么有一个FPU或没有。你能使用-msoft浮在GCC软浮点。您可能需要重新编译的libc,如果你用它来使用硬件浮点。 ..
发布时间:2016-08-19 15:39:43 服务器开发

IsBadReadPtr在Unix模拟

是否有一个功能类似于 IsBadReadPtr 在Unix中?至少IsBadReadPtr的一些功能? 我想写这将作出反应,如果不测的过程(如 SIGSEGV ),并回收一些信息的过程。但我想检查指针,以确保数据没有损坏,看看他们是否可以安全地访问。否则死机处理程序本身会崩溃,从而变得一无是处。 有什么建议? 解决方案 通常的方式做到这一点的POSIX系统是使用的write()系统调用 ..
发布时间:2016-08-19 14:34:34 服务器开发

重新链接共享库到不同版本的libc

我(的.so)编译的libc(GLIBC2.4)的特定版本Linux的共享库,我需要与不同版本的libc中的使用它的系统上。我没有有问题的库源代码,所以我不能重新编译为新系统。是否有可能以某种方式改变依赖于该库到不同的libc? 解决方案 如果您需要与旧的glibc系统上的。所以,你需要在源$ C ​​$ c和重新编译/与旧的glibc重新链接它。另一种方法是在非缺省位置旧系统上安装所需的 ..
发布时间:2016-08-19 14:21:48 C/C++

是的malloc /释放由libc中提供的系统调用或库例程?

如果的malloc /自由是实现为的libc库例程,然后才是它的基础上实现了的 SBRK 的系统调用或 MMAP 的系统调用,还是其他什么东西? 和是一般,没有在声明的函数的 SYS / syscall.h 的包含了所有的系统在目标机器电话? 解决方案 的malloc 和免费是标准C库功能,这是每一个C实现来实现。 C标准只定义了这些功能的行为方式,并从他们所期望的行为。它们是如何在左 ..
发布时间:2016-08-19 00:27:57 服务器开发

什么S [-1] = 0是什么意思?

我学习函数strtok的code来自BSD的libc中,当我在我的机器上运行它, 该程序接收到的信号 SIGSEGV 在 S [-1] = 0 。 这里的链接到code。 是 S [-1] = 0 吧? 这是我的code: 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; #包括“strtok.c”INT主(INT ARGC,CHAR *的ar ..
发布时间:2016-08-19 00:10:01 C/C++

是否存在这样libc中的功能FMA可以使用任何场景?

我遇到此页面并发现有一个奇怪的浮动乘法添加的功能 - FMA 和 fmaf 。它说,结果是这样的: (X * Y)+ Z #fma(X,Y,Z) 和值的无限precision和圆形一次的结果格式的。 不过,AFAICT我以前从来没有见过这样的三元操作。所以我想知道什么是这个FUNC的cumstom使用。 解决方案 的重要方面融合乘加指令是(几乎)无限$ P $中间结果的pcision。 ..
发布时间:2016-08-18 23:33:26 C/C++

哪里是STDARG.H?

在我的系统(的Mac OS 10.6)的 /usr/include/stdarg.h 的是: / *此文件是公共领域。 * / / * GCC使用自己的这个头的拷贝* / #如果定义(__ GNUC__) #include_next<&STDARG.H GT; #elif指令定义(__ MWERKS__) #包括“mw_stdarg.h” #其他 #ERROR“这个头只支持__MWERK ..
发布时间:2016-08-18 23:21:16 C/C++

为什么我没有获得一个链接错误,当我为我自己的malloc和free?

我想实现一个简单的配合第一的内存管理算法。所以我有一个C文件与我自己 的void * malloc的(为size_t) 和无效免费(无效*) 在生成 .OUT 用gcc文件,我期待一个链接错误,因为它会与现有的标准实现冲突。但我的文件链接的罚款。 请帮我明白了。 解决方案 我期待一个链接错误,因为它会与现有的标准实现冲突。 您的期望是不正确的:使用一些其他的malloc大多 ..
发布时间:2016-08-18 23:19:59 C/C++

获取时区GMT在C的失调

我使用的是标准的 mktime 功能把一个结构TM 进入一个划时代的时间值。在 TM 字段是本地人口的,我需要得到划时代的时间为北京时间。 TM 有一个 gmtoff 字段,允许您设置的当地GMT以秒为抵消这个目的。 但我不能想出如何的获得的信息。当然,必须有一个标准功能的地方,将返回偏移?如何本地时间呢? 解决方案 我想我应该做得更多一点提问前搜索。原来,有一个鲜为人知的 timegm ..
发布时间:2016-08-18 23:16:56 C/C++

为什么最大负整数-2147483648的绝对值仍-2147483648?

ABS的结果(-2147483648)是-2147483648,不是吗? 这似乎是不可接受的。 的printf(“ABS(-2147483648):%d个\\ N”,ABS(-2147483648)); 输出: ABS(-2147483648):-2147483648 解决方案 标准说,关于 ABS(): 的ABS,实验室和llabs函数计算整数j的绝对值。如果 结果不能再pre ..
发布时间:2016-08-18 22:54:38 C/C++

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

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

小libc中的嵌入式系统

我要寻找一个小的libc用于在ARM7微控制器与嵌入式FreeRTOS的使用。 我已经看过newlib,但它是我的需求有点太复杂。 Newlib调用的malloc() 若干功能(例如printf()的),这是不利于小型嵌入式实时系统 有谁知道一个小巧,便携,开源的libc实现,将适合我的申请? 解决方案 PDCLib 的可能满足您的需求。这是仍然是不完整的 [无效链接] 的,不过,也 ..
发布时间:2016-08-18 22:12:51 C/C++

如何提供的libc职能,两个人的名字?

在直接结合(-B直接)libc中的出现提供了许多 有两个名字的功能。例如,的getpwent()和_getpwent()。 这两个名字所指正是libc中的相同的功能。 如何libc中提出两个函数名指向相同的实现? 我觉得应该不会像写作一样code虽然两次一样容易。 解决方案 它可以通过完成的弱别名的一个“非标准”连接把戏,一直围绕年初以来,Unix系统,并可以被所有UNIX编译 ..
发布时间:2016-08-18 15:14:11 C/C++

是的snprintf()总是空终止?

总是snprintf的空终止目标缓冲区? 在换句话说,这是足够了: 字符DST [10];的snprintf(DST,sizeof的(DST),“嗒嗒%S”,somestr); 或做你必须做的就是这样,如果somestr足够长?字符DST [10];somestr [的sizeof(DST) - 1] ='\\ 0'; 的snprintf(DST,sizeof的(DST) - 1,“嗒 ..
发布时间:2016-08-18 14:02:23 C/C++

为什么时间(time_t的*)函数都返回并设置由-REF?

我一直很好奇,为什么在时间(time_t的*)函数都返回一个 time_t的,和时间设置为指针传递的? 返回时间的示例: time_t的数值指明MyTime =时间(NULL); 输出(“的时间是现在%S”的ctime(安培;数值指明MyTime)); 的值设置为指针的示例: time_t的数值指明MyTime; 时间(安培;数值指明MyTime); 输出(“的时间是现在%S”的ctim ..
发布时间:2016-08-18 13:12:38 C/C++

更换extrordinarily慢POW()函数

我们有一个CFD求解器,并同时运行模拟,发现运行在某些机器上而不是其他异常缓慢。使用英特尔VTune,发现下面一行是问题(Fortran语言): RHOV = RHO_INF *((1.0_wp - COEFF * EXP(F0)))**(1.0_wp /(GAMM - 1.0_wp)) 在VTune™可视化钻井,问题被曝呼叫POW 装配生产线和跟踪堆栈时,这表明它使用 __ sl ..
发布时间:2016-08-18 13:00:49 C/C++

如何链接到不同的libc文件?

我想用我的节目一起提供的共享库,而不是使用目标系统的由于版本差异。 LDD 说我的程序使用这些共享库: Linux的gate.so.1 => (0xf7ef0000)**(由内核制造)** libc.so.6的= GT; /lib32/libc.so.6(0xf7d88000)**(libc-2.7.so)** /lib/ld-linux.so.2(0xf7ef1000)**(ld-2 ..
发布时间:2016-08-17 23:29:48 C/C++