C库的实现是否依赖于OS?

Pal*_*shV 5 c operating-system systems-programming

我只是想知道在不同的操作系统中有不同的功能,但它们的用途相同,或者可以说不同的操作系统有不同的系统编程语言(比如Windows和UNIX的操作系统).

因此,例如,由于C库包含函数的实现,它们的实现必须调用不同的函数(取决于OS),以实现相同的功能.它是否正确?那么,在cygwin中使用的库是用于编译专门为Windows编写的C程序,还是gcc编写的,特别是对于Linux?我对么?如果没有,为什么呢?

Eld*_*Bug 4

对,那是正确的。不同的操作系统有不同的功能来完成相同的事情。例如,在 Windows 上,您可以通过调用 创建线程CreateThread(),而在 Linux 上,您可以调用pthread_create()

关于C运行时,所有操作系统都实现它们,但有所不同。在 Windows 上,fopen()是一个将调用 的包装器CreateFile(),而在 Linux 上fopen()是 的包装器open()

Cygwin 等添加了库以在 Windows 上实现 linux 独有的功能。例如,cygwin 将pthread_create()通过包装来在 Windows 上实现CreateThread(),就像 MS 对fopen().