我只是想知道不同的操作系统有不同的功能,但它们的用途相同,或者可以说不同的操作系统有不同的系统编程语言(比如Windows vs UNIX)。
因此,例如,由于 C 库包含函数的实现,它们的实现必须调用不同的函数(取决于操作系统),以实现相同的事情。这样对吗? 那么,cygwin 中用于编译专门为 Windows 编写的 C 程序的库,以及 gcc 的库,尤其是用于 Linux 的库?我对么? 如果不是,那又是为什么?
最佳答案
是的,没错。不同的操作系统有不同的功能来做同样的事情。例如,在 Windows 上,您可以通过调用 CreateThread()
创建线程,而在 Linux 上,您可以调用 pthread_create()
。
关于 C 运行时,所有操作系统都实现了它们,但有所不同。在 Windows 上,fopen()
是将调用 CreateFile()
的包装器,而在 linux 上,fopen()
是 的包装器打开()
。
Cygwin 等添加库以在 Windows 上实现 linux-only 功能。例如,cygwin 将通过包装 CreateThread()
在 Windows 上实现 pthread_create()
,就像 MS 为 fopen()
所做的那样。
关于c - C 库的实现是否依赖于操作系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27544992/