小编use*_*352的帖子

malloc在分配内存时是否保留更多空间?

我在测试程序中观察到以下行为:

我正在malloc()为1 MB,然后free()之后sleep(10)。我做了五次。我正在观察top程序运行时的内存消耗。

一次free()-d,我期望程序的虚拟内存(VIRT)消耗将减少1 MB。但实际上并非如此。它保持稳定。这种现象的解释是什么?malloc()分配内存时是否做一些保留?

c malloc free dynamic-memory-allocation

31
推荐指数
3
解决办法
2636
查看次数

使用静态链接构建 libcurl 到 openssl

我正在尝试构建 libcurl 并静态链接到 openssl。为了实现这一点,我使用了以下配置:

\n\n

OpenSSL:

\n\n
LDFLAGS="-static\xe2\x80\x9d\nLIBS="-ldl\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n\n

卷曲:

\n\n
LDFLAGS="-static\xe2\x80\x9d\nCPPFLAGS="-I$(CURDIR)/$(3RDPARTY_DIR)$(OPENSSL)/include   \nLDFLAGS="-L$(CURDIR)/$(3RDPARTY_DIR)$(OPENSSL)"\n./configure --disable-shared --without-zlib --without-libidn --without-librtmp --disable-ldap \xe2\x80\x94-with-ssl=<path where my openssl is installed>\n
Run Code Online (Sandbox Code Playgroud)\n\n

有了这个,我将生成 libcurl.a 并将其链接到我的代码,在其中我能够根据我的需要成功处理 HTTPS 连接。

\n\n

但出于学习目的,我想知道 SSL 符号是否实际集成到 libcurl 中。\n因此,我尝试使用nm命令:

\n\n
nm -A libcurl.a | grep \xe2\x80\x9cSSL_"\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它显示所有 SSL 符号为未定义。例如,

\n\n
U SSL_connect\nU SSL_ctrl\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么这是否意味着 libssl.a 和 libcrypto.a 中的符号实际上并未集成到 libcurl 中?

\n\n

如果是,可以采取什么措施将它们实际集成到 libcurl.a 中?

\n\n

感谢任何帮助我理解这一点的帮助。

\n

openssl libcurl static-linking nm

2
推荐指数
1
解决办法
5696
查看次数

无论如何要知道perl文件是否修改而没有轮询?

我只想在修改特定文件时在我的perl脚本中获得某种通知.

有没有其他方式,而不仅仅是不断轮询?

perl

1
推荐指数
1
解决办法
93
查看次数

如何在 C++11 中检查分离线程的状态?

我已经尝试寻找解决方案的多种方法,但到目前为止找不到合适的方法。

我正在使用分离线程,因为我不希望我的主线程等待/阻塞新的子线程,因为它还有许多其他重要的事情要做。

我创建一个线程如下:

std::thread rsync_t(&PreCompile::RunPreCompileThr, obj, arg1, arg2);
rsync_t.detach();
Run Code Online (Sandbox Code Playgroud)

现在,目标是定期检查这个分离的线程是否处于活动状态并正在运行。

我尝试了未来/承诺和异步方式来做到这一点,但它需要 .get(),它类似于 join(),这是我不想要的。

有什么建议可以做到这一点吗?

提前致谢。

c++ multithreading c++11

0
推荐指数
1
解决办法
484
查看次数