百科问答小站 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 NT 内核与 Linux 内核相比哪个更安全? 
  当下软件开发语言腾出不穷,作为老牌c++GUI领域top1的QT未来会怎样? 
  CMake是不是阻碍了C++的发展? 
  C语言中for语句的赋初值用int i=1和i=1有什么区别? 
  还有哪些像 Unix,C/C++ 一样经久耐用的软件技术? 
  如果有两颗药丸,一颗吃了让你写代码100%不出错,另一颗吃了能让你100%发现并修改bug,选哪颗? 
  Linux 为什么不把显示服务放在内核里? 
  同样用pow()表示10^2,为什么分别用字面量和变量作参数会返回不同的值? 
  在c++代码中使用const关键字是不是自找麻烦? 
  传统的try-catch异常处理是否是编程语言发展中的弯路? 

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





© 2025-01-18 - tinynew.org. All Rights Reserved.
© 2025-01-18 - tinynew.org. 保留所有权利