问题标签 [glibc]

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 投票
3 回答
1121 浏览

regex - glibc 正则表达式性能

有人有测量 glibc 正则表达式函数的经验吗?是否需要运行任何通用测试来进行此类测量(除了测试我打算搜索的确切模式)?

谢谢。

0 投票
5 回答
759 浏览

c - glibc中重复内存分配的效率

下面是我对来自著名 LAPACK 数值库的 Fortran ZHEEVR 例程的 C 包装器:

该函数在我的应用程序中被调用了数十万次,以对相同矩阵大小的复矩阵“a”(参数名称遵循该函数的 Fortran 约定)进行对角化。我认为工作数组的大小在大多数情况下都是相同的,因为对角化矩阵将具有相同的结构。我的问题是:

  1. 重复的 alloc/free(“alloc_memory”是 glibc 的 malloc 的简单包装器)调用会损害性能吗?有多严重?
  2. 免费的顺序重要吗?我应该先释放最后分配的数组,还是最后释放?
0 投票
3 回答
14154 浏览

c - 关于 malloc 和 free 中的线程安全

可能重复:
Malloc 线程安全?

我听说 glibc malloc() 不是线程安全的,因为同时调用 malloc() 的进程的多个线程会导致未定义的行为。我的问题是,如果一个线程调用 free(),另一个线程会调用 malloc(),这也会导致未定义的行为吗?

0 投票
3 回答
1069 浏览

c - __libc_lock_lock 出现段错误

我正在研究一段在c中使用正则表达式的代码。

所有正则表达式的东西都使用标准的正则表达式 c 库。

在 regexec.c 的第 246 行,该行是

我的程序在这里出现段错误,我不知道为什么。我试图找到 __libc_lock_lock 的定义位置,结果发现它是 bits/libc-lock.h 中的一个宏。然而,宏实际上并没有被定义为任何东西,只是被定义了。

两个问题:

1)调用 __libc_lock_lock 时运行的代码在哪里(我知道它必须替换为某些东西,但我不知道那会在哪里。

2) 如果 dfa 是一个 re_dfa_t 对象,它是从作为 regex_t 对象类型的缓冲区成员的 ac 字符串转换而来的,它不会有任何成员锁。这是应该发生的事情吗。

这个 __libc_lock_lock 真的好像有某种魔法在这里发生

0 投票
8 回答
45120 浏览

linux - Pthread互斥断言错误

在基于 linux(arm)的通信应用程序中,我在不可预知的时间遇到​​以下错误:

谷歌出现了很多关于该错误的引用,但似乎与我的情况相关的信息很少。我想知道是否有人可以给我一些有关如何解决此错误的想法。有谁知道这个断言的共同原因?

提前致谢。

0 投票
1 回答
91 浏览

c++ - 在 vs 2003 上将管道(处理程序)转换为 fd 时出错

我正在尝试使用通知主 gtk 线程(来自单独的线程),有些甚至使用管道发生。尝试设置管道时收到以下警告。什么是好的解决方法?

当我可以使用这个 g_io_channel_win32_new_fd 时,我看到了这个警告,因此根本没有创建管道:(

GLib-WARNING **: giowin32.c:1564: 3 不是 C 库文件描述符

目标是通知主应用程序线程线程中发生了一些事情。就我而言,我不能以多线程方式使用 gtk(从衍生的调用主线程的函数),所以我试图通过管道来实现。

我还看到这可能是这个线程中的视觉工作室问题

有什么建议么?

0 投票
1 回答
2204 浏览

cygwin - 在 Cygwin 中更新 glibc

我只是想使用 Cygwin x 服务器,但是当我尝试启动一个程序时,我被告知 glibc 太旧了。我有 2.3.2 版,但需要 2.3.6 版。有什么简单的方法可以更新吗?在 cygwin 安装程序中找不到这个包。

谢谢

0 投票
3 回答
1023 浏览

c - 任何查询分配块大小的函数?

我意识到任何这样的功能都可能是非标准的,但这对我的用例来说没问题。基本上,我需要一个方法(即使它仅通过 glibc 的 syscall() 接口公开),我可以将指针传递给(由先前调用 malloc() 返回的指针)返回块的大小指针点在。这样的事情存在吗?

0 投票
1 回答
1268 浏览

c - getpwnam_r 内存泄漏

我使用 getpwnam_r 在我的程序中处理客户端连接。可悲的是,它似乎分配了一个它永远不会释放的缓冲区。相关的 valgrind 输出:

有没有办法告诉 getpwnam_r 释放它的缓冲区?还是我必须压制这些 Valgrind 错误?

谢谢,卡斯帕

0 投票
3 回答
7011 浏览

c - 构建一个 .so 这也是一个可执行文件

所以大家可能都知道glibc/lib/libc.so.6可以像普通的可执行文件一样在shell 中执行,在这种情况下它会打印其版本信息并退出。这是通过在 .so 中定义一个入口点来完成的。在某些情况下,将其用于其他项目也可能很有趣。不幸的是,您可以通过 ld 的 -e 选项设置的低级入口点有点太低级:动态加载程序不可用,因此您无法调用任何适当的库函数。出于这个原因,glibc 通过这个入口点中的裸系统调用来实现 write() 系统调用。

我现在的问题是,任何人都可以想出一种好方法,如何从该入口点引导一个完整的动态链接器,以便可以访问其他 .so 的函数?