问题标签 [libc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
9701 浏览

linux - 我需要来自 glibc 的异步信号安全函数列表

非系统调用的包装器,但类似于 snprintf()、dprintf()

0 投票
3 回答
4545 浏览

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

我有一个使用特定版本的 libc (GLIBC2.4) 编译的 linux 共享库 (.so),我需要在具有不同版本的 libc 的系统上使用它。我没有相关库的源代码,因此无法为新系统重新编译。是否有可能将该库中的依赖项更改为不同的 libc?

0 投票
1 回答
1103 浏览

javascript - 使用 JNA、Rhino、JavaScript 分配 char 缓冲区

在 Narwhal 中,我们使用 JNA 来libc调用getcwdchdir. 我只能在对 JNA 接口了解有限的情况下使用它,因为它与 Rhino 中的 JavaScript 相关,专门处理原语。我需要知道如何分配一个 char 缓冲区,以便我可以将它传递给getcwd,从该缓冲区中检索一个 JavaScript 字符串,并取消分配缓冲区,大概是在一个finally子句中。

下面是我们如何抓取libc界面:

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L32-42

下面是如何chdir实现的:

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L438-444

这是我们需要解决方案的地方getcwd

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L416-419

Ruby 或任何其他 JNA 嵌入式语言的解决方案会有所帮助。

0 投票
1 回答
548 浏览

qt - 使用 qtconcurrent 生成异常并调用 QTime:currentTime

我似乎只使用使用 Qtconcurrent::run 创建的线程生成异常

我有一个名为 FPSengine 的类,它有一个名为 FPSengine::getData() 的方法,该方法由主线程和 3 个其他线程(2 个 QThreads 和 1 个使用 QtConcurrent::run())调用。在 FPSengine::getData() 内部,我调用 QTime::currentTime()。如果我从主线程或 QThreads 之一调用 FPSengine::getData() 我没有任何问题,但是当我从使用 Qtconcurrent::run() 创建的线程调用 FPSengine::getData() 时,有时会出现异常。Qtconcurrent 或 QTime:currentTime() 甚至 tzset (由 gdb 堆栈显示的 QTime::currentTime 调用)是否有问题?还是我的代码有问题。这是失败线程的堆栈信息:
0 raise /lib/libc.so.6 0
1 abort /lib/libc.so.6 0
2 ?? /lib/libc.so.6 0
3?? /lib/libc.so.6 0
4 免费 /lib/libc.so.6 0
5 ?? /lib/libc.so.6 0
6 tzset /lib/libc.so.6 0
7 QTime::currentTime() /usr/lib/libQtCore.so.4 0
8 FPSengine::xmitData FPSengine2.cpp 93
9 FPSengine: :getData FPSengine2.cpp 21
10 线程数据日志::运行线程数据日志.cpp 109
11 ?? /usr/lib/libQtCore.so.4 0
12 start_thread /lib/libpthread.so.0 0
13 克隆 /lib/libc.so.6 0 14 ?? 0

0 投票
1 回答
5785 浏览

android - Android libc版本和malloc实现

Android平台使用什么libc实现?使用什么 malloc 实现(ptmalloc 或 tcmalloc 或其他)?

0 投票
2 回答
2500 浏览

android - 仿生(android libc)互斥体变体

仿生 libc 支持哪些类型的互斥锁?

  • 递归的
  • 定时的
  • 自适应
  • 错误检查
0 投票
1 回答
4587 浏览

visual-c++ - 运行时库不匹配和 VC++ - 哦,痛苦!

似乎我整个成年生活都被 VC++ 链接器抱怨或犹豫所折磨,因为各种库不同意使用哪个版本的运行时库。我从来没有心情去掌握那个令人沮丧的主题。所以我只是试着弄乱它,直到它起作用。错误消息永远不会有用。微软关于这个主题的文档也不是——至少对我来说不是。

有时它找不到函数 - 因为名称修改不是预期的?有时它拒绝混搭。有时它只是说,“链接:警告 LNK4098:defaultlib 'LIBCMTD' 与使用其他库发生冲突;使用 /NODEFAULTLIB:library” 使用 /NODEFAULTLIB 不起作用,但警告似乎是良性的。到底什么是“DEFAULTLIB”?链接器如何决定?我从来没有见过一种方法来指定链接器使用哪个运行时库,只有如何告诉编译器为哪个库创建函数调用。

有“dependency walker”程序可以检查目标文件以查看它们所依赖的DLL。我刚刚在我正在尝试构建的项目上运行了一个,这真是一团糟。有些系统 .libs 和 .dll 需要冲突的运行时版本。例如,COMCTL32.DLL 想要 MSVCRT.DLL,但我链接的是 MSVCRTD.DLL。我正在搜索是否有 COMCTL32D.DLL,即使在我键入时也是如此。

所以我想我要的是一个关于如何整理这些东西的教程。你做什么,你是怎么做的?

这就是我想我知道的。如果有任何错误,请纠正我。

  1. 参数为调试/发布、多线程/单线程和静态/DLL。仅涵盖八种可能组合中的六种。没有单线程 DLL,无论是 Debug 还是 Release。

  2. 这些设置只影响链接到哪个运行时库(以及与之链接的调用约定)。例如,如果您正在构建 DLL,则不必使用基于 DLL 的运行时,也不必在构建程序的 Debug 版本时使用 Debug 版本的运行时,尽管在单跳过系统调用。

额外的问题:任何人或任何公司怎么会造成这样的混乱?

0 投票
3 回答
2115 浏览

c - 比 x86_64/linux 上的 glibc 更快的数学库?

是否有更快的 x86_64-linux 的 glibc 的 libm(和头文件?)替代品?

0 投票
1 回答
927 浏览

linux - 除 __stack_chk_guard 之外,libc 在哪些平台上存储堆栈 cookie 值?

例如,Linux/i386 上的 glibc 将 cookie 存储在%gs:0x14. 除了符号之外,我还需要在其他平台上__stack_chk_guard寻找 cookie 吗?

(这是生成的gcc -fstack-protector代码在函数序言中存储到堆栈中的值,并在返回之前检查以防止堆栈粉碎)。

0 投票
2 回答
46856 浏览

c - 不使用 libc 编译

我想在没有 (g)libc 的情况下编译我的 C 代码。如何停用它以及哪些功能取决于它?

我试过 -nostdlib 但它没有帮助:代码可编译并运行,但我仍然可以在可执行文件的 hexdump 中找到 libc 的名称。