C 低级别I/O的含义是什么?我如何在这个项目中实现它?

C 低级别I/O的含义是什么?我如何在这个项目中实现它?,c,io,low-level-io,C,Io,Low Level Io,我需要编写一个接受三个命令行参数的C程序: 输入文件1 输入文件二 输出文件的名称 程序需要从文件1和2中读取数据,并将第一个文件与第二个文件连接起来,生成第三个文件 这看起来应该很容易,但任务的规定之一是只使用低级I/O。 这到底意味着什么(低级别I/O)?要回答唯一的问题(什么是低级别I/O),它可能意味着操作系统本机输入/输出功能 在POSIX中,这将是例如和 在Windows上,例如,和。低级别基本上代表操作系统级别。这可以通过使用系统调用来完成。 应用程序开发人员通常不能直接访问系统调

我需要编写一个接受三个命令行参数的C程序:

  • 输入文件1
  • 输入文件二
  • 输出文件的名称
  • 程序需要从文件1和2中读取数据,并将第一个文件与第二个文件连接起来,生成第三个文件

    这看起来应该很容易,但任务的规定之一是只使用低级I/O。


    这到底意味着什么(低级别I/O)?

    要回答唯一的问题(什么是低级别I/O),它可能意味着操作系统本机输入/输出功能

    在POSIX中,这将是例如和


    在Windows上,例如,和。

    低级别基本上代表操作系统级别。这可以通过使用系统调用来完成。 应用程序开发人员通常不能直接访问系统调用,但可以通过应用程序编程接口(API)访问它们。API中包含的函数调用实际的系统调用。通过使用API,可以获得某些好处:

    可移植性:只要系统支持API,任何使用该API的程序都可以编译和运行

    易用性:使用API比使用实际的系统调用容易得多

    有关系统调用的更多信息,请查看和


    看看你的程序。

    这是个不错的问题。OP没有要求代码。我从来没有说过这是一个糟糕的问题。“低级别I/O”对我来说意味着驱动程序,以及所有操作系统和硬件特定中断以及随之而来的DMA。这是一个未充分指定的任务,我将拒绝处理,无需进一步澄清。@Sukminder在Windows上,例如
    \u open
    等,不是本机WIN32函数。他们在幕后使用本机WIN32函数。我想,这完全取决于您希望达到的低级别。是否正确地认为“C语言与Unix和类似Unix的系统密切相关”,因此所有设计用于在低级别执行I/O操作的函数实际上都是相应操作系统服务的包装器。?在Windows上与在中相比呢POSIX@CătălinaSîrbu,而C是在UNIX上出生的(POSIX紧随其后),C编程语言自20世纪80年代标准化以来就完全独立于操作系统。C中最低级别的I/O函数可能是
    fread
    fwrite
    ,它们不是“操作系统级”"低级。谢谢!我忘了问,如果这些功能有高级实现,为什么我们需要使用低级I/O?是为了更好的性能吗?我已经读到,即使它们有缓冲区和行转换,它们也已经进行了性能调整occurs@C利纳的表现可能是一个问题,但并不总是ma的问题这是有道理的。有时不可能使用其他东西。例如,当使用管道、套接字、串行端口或其他类似的东西时,这些东西不是由C库抽象出来的。