标签: c-libraries

在C++代码中使用纯C库是否会降低性能?

我看到了这个链接,但我不是要求使用"extern"的代码性能下降.我的意思是没有"extern",在C++中使用C库时是否存在"上下文切换"? 在C++应用程序中使用纯C(非类包装)函数时是否有任何问题?

c c++ performance c-libraries

18
推荐指数
2
解决办法
1834
查看次数

printf需要%zu说明符吗?

我们在嵌入式平台上使用C89.我试图打印出来size_t,但它不起作用:

#include <stdio.h>
int main(void) {
    size_t n = 123;
    printf("%zu\n",n);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

而不是123,我得到了zu.
其他说明符正常工作.

如果size_t存在不应该 zu也可用printf
这是我应该联系我的图书馆供应商的事情,还是允许排除它的图书馆实施?

c printf size-t c89 c-libraries

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

C的Variant数据类型库

是否有一个像样的开源C库来存储和操作
动态类型的变量(又名变种)?我主要对原子值(int8,int16,int32,uint,字符串,blob等)感兴趣,而JSON样式的数组和对象以及自定义对象也很好.这种库有用的一个主要情况是使用SQL数据库.

这种库最明显的特征是所有支持值的单一类型,例如:

struct Variant {
    enum Type type;
    union {
        int8_t int8_;
        int16_t int16_;
        // ...
    };
};
Run Code Online (Sandbox Code Playgroud)

其他功能可能包括将Variant对象转换为C结构(使用绑定表),将值转换为/从字符串转换,以及与现有数据库库(如SQLite)集成.

注意:我不相信这个问题是C中通用数据类型任何库的重复吗?,指的是"队列,树木,地图,名单".我所谈论的内容更多地侧重于使用SQL数据库与在解释语言中使用它们一样顺畅.

c variant c-libraries

7
推荐指数
3
解决办法
5738
查看次数

加载共享库时出错:libgomp.so.1:错误的GCC版本?

执行第三方c ++程序时,我收到以下错误:

加载共享库时出错:libgomp.so.1:无法打开共享对象文件:没有这样的文件或目录

libgomp.so.1库是GNU编译器集合OpenMP运行时库.

这是GCC包的一部分吗?我可以在一个使用gcc-4.5的系统上运行该程序,但不能在gcc-4.3或gcc-4.6的系统上运行.

或者我需要安装另一个包吗?

我尝试通过下载库并将其放在LD_LIBRARY_PATH上在gcc-4.3系统上手动修复此问题,但后来我得到了另一个丢失的库:/usr/lib/libstdc++.so.6:版本`GLIBCXX_3.4.11'没有发现.libstdc是GNU标准C++库,所以这也表明GCC的版本错误?

我不是C++开发人员,所以我不完全知道这些库是什么以及库如何与C++代码一起工作.

os是linux 64位.

gcc-4.3机器:openSUSE 11.1

gcc-4.5机器:openSUSE 11.4(在这台机器上程序可以工作)

gcc-4.6机器:openSUSE 12.1

c++ gcc c-libraries

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

为什么Postgres C库名为libpq而不是libpg?

Postgres世界中的所有东西都有一个共同的缩写pg,而且调用Postgres的c库 似乎更合乎逻辑libpg,而不是libpq.为什么叫它libpq?是libpg已经采取的另一种工具?

postgresql naming c-libraries

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

用于编码和解码websocket帧的C或C++库

我有自己的套接字实现,支持来自常规tcp客户端的连接.现在我想在我的服务器程序中添加websocket支持.在这种情况下,我需要支持主要Web浏览器支持的握手和消息成帧协议.我能够处理握手部分,但却陷入了处理消息框架和取消框架的问题.是否有任何现有的C或C++库来处理websocket消息帧的编码和解码,并支持主要Web浏览器使用的主要websocket协议?

我发现的大多数当前实现(即libwebsocket,websocketpp等)都实现了自己的服务器和客户端库,这意味着我需要使用他们的套接字实现.我不想这样做,因为这将要求我在我当前的程序中修改很多东西,这对我来说不是一个选择.我需要的只是一个简单的库来处理websocket框架的编码和解码(和/或处理握手部分,但它不是强制性的).

c++ sockets c-libraries websocket

4
推荐指数
2
解决办法
2784
查看次数

我可以在编程操作系统时包含C库(因为它们是用C语言编写的)

我正在尝试为Raspberry Pi创建一个操作系统(没有什么大的,只是为了好玩),尽管我可以在Assembly中写出所有内容,但这比在C中编写它要困难得多.我想知道是否(以及为什么如果我不能,我可以将C库(文件)包含在操作系统中,这样我就不必重写它们了.它不会起作用,因为库本身是用C语言编写的吗?

c operating-system libraries c-libraries raspberry-pi

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

带有自定义argc和argv的getopt_long()函数

我在使用自定义argc和argv的getopt_long()函数时遇到问题.

我用字符串而不是真正的命令行args接收我的参数.然后从该字符串构建new_argc和new_argv以与getopt_long()一起使用.但getopt_long()在第一次调用时失败.返回EOF和optarg = NULL.

string is "-c 10.30.99.41" 
new_argc = 3
new_argv[0]=>./prog_name
new_argv[1]=>-c
new_argv[2]=>10.30.99.41
Run Code Online (Sandbox Code Playgroud)

如果我通过命令行参数,getopt_long对我来说还可以.所以我的短期和长期选择是正确的.但是如果我传递new_argc和new_argv就失败了.

我确信我的短期和长期选项是正确的,并且argv是NULL终止的.我道歉,我不能在这里发布更多代码.

我怀疑getopt_long是否可以与自定义argc和argv一起使用.我怀疑它只适用于真正的argc和argv,因为它必须引用与argc,argv相关的libc中的其他一些代码.任何意见?

option = getopt_long( new_argc, new_argv, short_options, long_options, NULL );
Run Code Online (Sandbox Code Playgroud)

c c++ getopt command-line-arguments c-libraries

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

C中是否有一个函数可以检查字符是字符还是整数等?

我有一个家庭作业,我的教授说,有些学生发现他们可以检查他们读的字是否是使用功能的特定字符.他说这是在string.h库中,但是我检查过,我没看到它.任何人都能指出我正确的方向吗?

c c-libraries

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

Android是否支持setjmp/longjmp,access,chdir,getcwd?

我对Android开发很陌生,我想知道Android是否支持C中的上述功能.

提前致谢.

android c-libraries android-ndk

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

用于数值计算的有用的c ++库

到目前为止我已经使用了boost库.

但是,我想使用矩阵运算和随机数.

请让我知道有用的c ++库.

谢谢.

c++ numerical-analysis c-libraries

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