Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我们在c编程中使用unix系统接口?_C_Unix - Fatal编程技术网

为什么我们在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(),有时我

《R&K C编程指南》中有一部分是关于UNIX系统函数的

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

那么我们需要什么样的C库函数来代替它们呢


为什么在C库中有UNIX系统函数时,我们需要了解并使用C编程中的UNIX系统函数?

UNIX有系统调用,如
write()
,这些调用由库函数使用,如
printf()
,用于格式化和更舒适的使用
printf()
正在以某种方式使用
write()
,有时我们希望以另一种方式使用它,这就是为什么熟悉那些
read()、write()
open()
会很有帮助。也就是说,在大多数情况下,
printf()
将是更适合编写的选择,而不是
write()


另外,read

Unix具有系统调用,如
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()函数?@arianpress
printf()怎么可能使用write()函数?
通过实现操作系统中支持
printf()
的部分而不使用
printf()
函数。我承认这是一个非常简短的总结,但它足够接近于帮助理解它是如何完成的。UNIX是用C语言编写的。printf()如何可能使用write()函数?@arianpress
printf()如何可能使用write()函数?
通过实现支持
printf()的操作系统部分
而不使用
printf()
函数。我承认这是一个非常简短的总结,但它足够接近于帮助理解它是如何完成的。这回答了为什么库函数可能是首选的,但这如何回答OP的问题,“为什么我们需要在C编程中了解和使用UNIX系统函数?”@DavidBowling,原因之一,在严格遵循C代码的过程中,有些事情是无法做到的,比如确定文件的大小。这回答了为什么库函数可能是首选的,但这如何回答OP的问题,“为什么我们需要在C编程中了解和使用UNIX系统函数?”@DavidBowling,原因之一,在严格遵守C代码的过程中,有些事情是无法做到的,比如确定文件的大小。