为什么我们在c编程中使用unix系统接口?

时间:2017-05-07 12:27:06

标签: c unix

在R& K C编程指南中有一部分关于UNIX系统功能。

read()write()open()等系统调用,而我们可以使用scanf()printf()fopen()或其他c库函数可以完成同样的工作。

那么我们需要C库函数而不是它们呢?

为什么我们需要在C编程中知道和使用UNIX系统函数,而我们在C库中有这些函数?

3 个答案:

答案 0 :(得分:4)

标准库中的函数为您的程序提供了一个操作系统独立的接口,让系统为您执行任务。因此它们不是特定于UNIX的,尽管它们首次出现在许多UNIX实现中,因为那时是事实上的操作系统(不包括IBM360,Honeywell GCOS和其他大型机/迷你操作系统)。

答案 1 :(得分:2)

Unix具有像write()这样的系统调用,像printf()这样的库函数用于格式化和更舒适的使用。 printf()以某种方式使用write(),有时我们希望以另一种方式使用它,这就是为什么熟悉那些read(), write()和{{1 }}。也就是说,大多数情况下,open()将是更适合写作的选择,而不是printf()

另请阅读this

答案 2 :(得分:0)

函数read, write, ...更原始,并提供对OS的直接读/写。 fread, fwrite, ...为这些原始函数实现了更方便的缓冲接口。然而,便利性成本。例如,异步输入/输出不适用于这些功能。此外,没有相当于select的内容。如果您需要这些功能,则无法做出选择。