为什么我们在c编程中使用unix系统接口?
《R&K C编程指南》中有一部分是关于UNIX系统函数的 有一些系统调用,如为什么我们在c编程中使用unix系统接口?,c,unix,C,Unix,《R&K C编程指南》中有一部分是关于UNIX系统函数的 有一些系统调用,如read(),write(),open()等,而我们可以使用scanf(),printf(),fopen()或其他c库函数来完成同样的工作 那么我们需要什么样的C库函数来代替它们呢 为什么在C库中有UNIX系统函数时,我们需要了解并使用C编程中的UNIX系统函数?UNIX有系统调用,如write(),这些调用由库函数使用,如printf(),用于格式化和更舒适的使用printf()正在以某种方式使用write(),有时我
read()
,write()
,open()
等,而我们可以使用scanf()
,printf()
,fopen()
或其他c库函数来完成同样的工作
那么我们需要什么样的C库函数来代替它们呢
为什么在C库中有UNIX系统函数时,我们需要了解并使用C编程中的UNIX系统函数?UNIX有系统调用,如
write()
,这些调用由库函数使用,如printf()
,用于格式化和更舒适的使用printf()
正在以某种方式使用write()
,有时我们希望以另一种方式使用它,这就是为什么熟悉那些read()、write()
和open()
会很有帮助。也就是说,在大多数情况下,printf()
将是更适合编写的选择,而不是write()
另外,readUnix具有系统调用,如
write()
,这些调用由库函数使用,如printf()
,用于格式化和更舒适的使用printf()
正在以某种方式使用write()
,有时我们希望以另一种方式使用它,这就是为什么熟悉那些read()、write()
和open()
会很有帮助。也就是说,在大多数情况下,printf()
将是更适合编写的选择,而不是write()
另外,请阅读标准库中的函数,这些函数为您的程序提供了一个独立于操作系统的界面,让系统为您执行任务。因此,它们不是特定于UNIX的,尽管它们最初出现在许多UNIX实现中,因为那是当时事实上的操作系统(不包括IBM360、霍尼韦尔GCOS和其他大型机/小型操作系统).标准库中的函数为您的程序提供独立于操作系统的界面,让系统为您执行任务。因此,它们不是特定于UNIX的,尽管它们最初出现在许多UNIX实现中,因为那是当时事实上的操作系统(不包括IBM360、霍尼韦尔GCOS和其他大型机/小型操作系统)。函数
读、写、…
更原始,可以直接读/写操作系统fread,fwrite,…
为这些基本函数实现一个更方便的缓冲接口。然而,这种便利是有代价的。例如,异步输入/输出不适用于这些函数。此外,没有等效于select
。如果你需要这些功能,你别无选择 函数读、写、…
更原始,可以直接读/写操作系统fread,fwrite,…
为这些基本函数实现一个更方便的缓冲接口。然而,这种便利是有代价的。例如,异步输入/输出不适用于这些函数。此外,没有等效于select
。如果你需要这些功能,你别无选择 句子以大写字母开头。我还有一个反问题。你为什么想知道更少的东西?这听起来像是一种有缺陷的思维方式。句子以大写字母开头。我还有一个反问题。你为什么想知道更少的东西?这听起来像是一种有缺陷的思维方式。UNIX是用C语言编写的。printf()怎么可能使用write()函数?@arianpressprintf()怎么可能使用write()函数?
通过实现操作系统中支持printf()
的部分而不使用printf()
函数。我承认这是一个非常简短的总结,但它足够接近于帮助理解它是如何完成的。UNIX是用C语言编写的。printf()如何可能使用write()函数?@arianpressprintf()如何可能使用write()函数?
通过实现支持printf()的操作系统部分
而不使用printf()
函数。我承认这是一个非常简短的总结,但它足够接近于帮助理解它是如何完成的。这回答了为什么库函数可能是首选的,但这如何回答OP的问题,“为什么我们需要在C编程中了解和使用UNIX系统函数?”@DavidBowling,原因之一,在严格遵循C代码的过程中,有些事情是无法做到的,比如确定文件的大小。这回答了为什么库函数可能是首选的,但这如何回答OP的问题,“为什么我们需要在C编程中了解和使用UNIX系统函数?”@DavidBowling,原因之一,在严格遵守C代码的过程中,有些事情是无法做到的,比如确定文件的大小。