在R& K C编程指南中有一部分关于UNIX系统功能。
有read()
,write()
,open()
等系统调用,而我们可以使用scanf()
,printf()
,fopen()
或其他c库函数可以完成同样的工作。
那么我们需要C库函数而不是它们呢?
为什么我们需要在C编程中知道和使用UNIX系统函数,而我们在C库中有这些函数?
答案 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
的内容。如果您需要这些功能,则无法做出选择。