当前位置:首页 » 操作系统 » linux下的c库

linux下的c库

发布时间: 2023-05-22 23:00:40

1. 新手:linux下使用第三方C库(openssl),是调用.so文件还是直接调用.h文件

不管什么库文件,你都既要在包含.h文件(不然编译通不过:有未声明的函数),也要在gcc选项里面指定.so文件的位置(不然链接通不过:未知的符号)
比如
gcc -I include_path -L lib_path -lyourlib
include_path改成你头文件的目录
lib_path改成你动态库文件的目录
-lyourlib 改成l加上你要引用的库文件名字
比如libpthread.so就改成-lpthread

2. Linux下C/C++动态库在运行时是怎样加载进来的

在linux上,你在ps中说的那种"将动态库作为一个参数传到程序里"的使用方式,是通过dlopen函数将.so加载到当前进程中,并且通过ld.so将.so"链接"进当前进程。这个"链接"过程包括:查找未定义符号在当前进程中的地址、分配数据/代码/bss段内存(数据初始化全局变量、代码段重定位)、执行constructor函数等。之后,可以使用dlsym在已知符号名的情况下通过符号名查找符号对应的地址。这个符号可以是一个全局变量、全局函数等。在你说的C++中,重载的函数也可以理解为全局函数,会有一个属性为weak的符号。该符号的符号名如果不做修改,默认按照System V的C++ API命名规范命名(以保证linux下不同编译器编译出来的.so和.o可以通用)。但如果使用extern "C"修饰之后,变成C的函数名,则无名称修饰,便于使用。

作者:yin jie
链接:https://www.hu.com/question/29988788/answer/46352593
来源:知乎
着作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

3. linuxc语言函数库在什么路径

一般来说是放在/usr/include目录下的;
但是这个并不局限也是可控的,如果我们进行开发过程中,
就会在内核的库函数文件目录:
例如在:/XXX/XXX/linux-X.X/include
所以根据不同的情况,头文件存放的目录也是不同的,具体需要可以根据locate和grep命令进行查询。

4. linux下c/c++开发数据库类的软件,主流用什么数据库

市场上现在应用较多的是:oracledb2mysqlsysbaseinformix等数据库 对于在数据库上做开发,大型数据昌者轮库的公司都会提供相应的开发工具:如: oracle的耐信proc db2的db2 informix的esql 不同的数据库嵌入式c程序名也规定不同,如: oracle的.pc.pcpp informix的.ec.ecpp db2的.sqc等 总的来说oracle占的市嫌宽场份额大一些。


5. linux平台下C语言调用C库问题

1:你平时在Linux下编程使用的read,write都是库函数;
2:编程的过程可以是:调用库函数,库函数再去调用系统函数;也可以是直接调用系统函数,而这些系统函数是Linux内核定义的一些宏定义而已.两种方法都是可以的.

6. linux系统调用 shell命令 c库函数怎么区分

首先,命令应该是好和其他两个区分开来的了,因为命令都是可以直接敲在shell上面回车执行的,而系统调用和库函数都不行;
其次,Linux系统调用和C库函数都是函数的形式,即都是“func(args)”的形式,但系统调用是
由系统内核对外提供的服务接口;C库函数和你自己写的普通的函数没有本质的区别,只是在C标准库中而已,Linux上面glibc就是C函数库。从表面上看两者不太好区分,不过,你可以从它们需要包含的头文件来区分,C库函数像printf在
中,std就是标准(standard)的缩写形式,因此在
中的函数,基本都是C库函数;像
ssize_t
read(int
fd,
void
*buf,
size_t
count);这样很多的系统调用是包含在
中的,unistd意思是UNIX
Standard,从这个意义就可以区分了。
希望对你有所帮助,如还有问题,可随时联系我:-)

热点内容
王者荣耀安卓系统怎么转换到苹果 发布:2025-04-22 22:53:29 浏览:981
emobile7服务器地址如何查看 发布:2025-04-22 22:32:51 浏览:763
房间的秘密码是什么 发布:2025-04-22 22:32:43 浏览:121
文件夹前面多了选择框 发布:2025-04-22 22:32:40 浏览:704
迅雷网ftp 发布:2025-04-22 22:30:02 浏览:622
鼠标驱动源码 发布:2025-04-22 22:29:55 浏览:768
如何开发android应用 发布:2025-04-22 22:18:55 浏览:880
医保卡密码从哪里看 发布:2025-04-22 22:14:34 浏览:260
地铁逃生安卓更新后为什么进不去 发布:2025-04-22 22:13:49 浏览:443
java枚举使用 发布:2025-04-22 22:06:56 浏览:257