百科问答小站 logo
百科问答小站 font logo



C语言中,write(1,buf,N)与write(0,buf,N)在底层存在什么样的区别? 第1页

  

user avatar   farta-fine 网友的相关建议: 
      

我只能回答一部分情况。

这不是一个语言问题,是操作系统的实现细节问题。write并不是C语言的一部分,而是linux的一个系统api,只是以C接口形式提供。

fileid 0,1,2都是file descriptor,分别代表stdin,stdout,stderr。

为了一些老系统兼容性,如果stdin连接的是一个terminal,那么stdin仍然是可以写入的。写入的结果是将写入的内容回显。但是stdin连接的并不总是terminal,完全可以是一个pipe或者文件。这种情况下,再往stdin里写入,就有可能出错了。所以写入stdin并不是什么好主意。




  

相关话题

  如何解决windows上用fwrite()向文件写入内容时末尾的 问题? 
  C/C++ 小括号中为何不能声明变量的同时对其赋值? 
  总是纠结于编程语言标准怎么办? 
  如何以最小的改动尽量不改变已有代码的情况下适应不断变更的需求? 
  大一新生入学半个月,有比赛需要一个月造出红外循迹智能车,会C语言和c++,要怎么开始入门? 
  为什么C/C++要分为头文件和源文件? 
  刚上大一,C 语言压根听不懂怎么办? 
  C++在面向对象编程中,非虚继承和非虚析构函数的存在是为了解决什么问题? 能否都用虚继承和虚析构函数? 
  为什么C++在构造函数和析构函数中不能抛出异常? 
  C语言中整型输出(%d)有什么用? 

前一个讨论
入耳式耳塞不同品牌或不同材质的耳套对音质有着怎样的影响?
下一个讨论
我有个同学说C语言太低级了,没有易语言强大好用。请问我该如何反驳?





© 2024-09-28 - tinynew.org. All Rights Reserved.
© 2024-09-28 - tinynew.org. 保留所有权利