请问windows下C函数库和linux下C函数库有什么区别?
发布网友
发布时间:2022-05-06 15:40
我来回答
共1个回答
热心网友
时间:2022-07-01 06:44
标准
C
库函数以及数据类型等在任何操作系统下都可以编译运行,并且效果是完全一样的,但其内部的实现原理及存储方式不一定一样。这些库函数实际上在不同系统操作系统上的实现就是依赖于操作系统本身的
API。Linux
上当然就是
Linux
的
API,而
Windows
则是
Windows
API。就像最常见的
fopen
函数,在
Windows
上他是通过
CreateFile
函数实现的,而
Linux
上则是通过
open
函数。API
说白了就是函数,通常说
API
指的是操作系统函数。Linux
的
shell
相当于
Windows
的命令行,它只不过是一个解析命令和执行程序的环境。这个环境其实也是一个独立的程序。任何平台的程序要运行,就得依赖于该操作系统的
API。shell
也是个程序,怎么能说
shell
在
Windows
上相当于
Windows
API
呢?glibc
个人理解相当于
Windows
上的动态库,实际上
C
程序运行时调用的库函数就是通过这个
glibc
与操作系统进行交互的,而在
Windows
上则是通过
CRT
也就是
C
运行时库来与操作系统交互的。像
fopen
这样的
C
标准库函数。当在
Windows
上编译时,其链接到
msvcrt,在
Linux
上编译是,其链接到
glibc。而
glibc
与
msvcrt
内部分别调用了自身系统的
API
如
open
或
CreateFile
来分别实现
fopen
的功能。