STDOUT_FILENO STDIN_FILENO STDERR_FILENO 和stdin stdout stderr_chenyuNowUser的博客-程序员信息网

技术标签: linux  

对于STDOUT_FILENO STDIN_FILENO STDERR_FILENO 和stdin stdout stderr 在使用的时候要注意,虽然他们表示的意思是差不多的,都对应于标准输入,标准输出,标准出错,但是他们的类型是不一样的。在编程时,我使用了函数fprintf(),我想把信息输出到标准输出,也就是终端,开始我没有注意,我用的是fprintf(STDOUT_FILENO,"%s",arg);编译的时候,系统出现大量的警告信息,我查了一下fprintf()函数,

函数原型为:int fprintf(FILE *stream, const char *format, ...);  可以看到第一个参数是FIEL*类型的,而STDOUT_FILENO 是什么类型的呢,我们可以在/usr/include 中查找到它的定义:

在/usr/include/unistd.h中有如下定义:

/* Standard file descriptors.  */
#define STDIN_FILENO 0 /* Standard input.  */
#define STDOUT_FILENO 1 /* Standard output.  */
#define STDERR_FILENO 2 /* Standard error output.  */

可以看到他们是整型的,所以这里出现了错误,,那么我们在看看stdin stdout stderr ,

在linux 手册中

可以看到如下内容:

SYNOPSIS
       #include <stdio.h>

       extern FILE *stdin;
       extern FILE *stdout;
       extern FILE *stderr;
可以看出,他们才是FILE*类型的,所以在fprintf()中要把信息输出到屏幕,第一个参数要用stdout ,不能用STDOUT_FILENO。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/CHENYU123123/article/details/8661351

智能推荐

秋招来袭,想学习Java进大厂的小伙伴,这7点武林秘籍一定要点开看看!(附一线互联网大厂MySQL面试高频考点)_张三本三的博客-程序员信息网

转眼间六月已经过了十天了。六月虽是盛夏,但秋招也不远了。提早做好准备才能在实战中游刃有余。今天整理更新一篇Java学习分阶段路线攻略。希望能给大家一些启发,找到一条属于自己的学习线路。一、Java学习路线图首先,先分享一下对于不同学习方式的理解,小伙伴可以根据自己的情况选择。看视频系统学习,比如培训机构的课程、MOOC的课程等。看视频的好处就是有老师带着,易于理解和掌握,非常适合初学者。看书学习,如《Redis设计与实现》、《 Java 并发编程的艺术》,便于了解技术脉络和深入学习知.

2种方式打开jar文件_jar文件用什么打开方式_qiiiiiiiiiiiq的博客-程序员信息网

1.桌面操作(要先安装JDK/JRE)对 “.jar”文件右击:然后点击这个“浏览”然后找到你安装JDK的文件,找到Java.exe,然后选中,然后用这个打开就好。2.用cmd(dos)命令打开我试过上述方法去打开我的jar文件,但没用,暂时没用找到原因,于是用命令打开1.先检查Java是否正常安装,输入java -version即可2.用命令+ 目录地址的...

路由协议&BGP 边界网关路由协议(一)_pfxrcd_Go-0410的博客-程序员信息网

1.BGP的概念BGP:边界网关路由协议 -典型的EGP协议,用于AS和AS之间;协议更新中是否携带网络掩码:携带网络掩码协议算法:无算法 ,规则 ,路径矢量型协议封装:基于TCP封装 ,端口号 1792.BGP的特性特性:1、可靠性--不能周期更新,增量更新;-TCP2、可控性--该协议的真正意义, 在于AS间共享路由条目时更加方便快捷的干涉选路3、AS-BY-A...

linux一键安装MySQL,PHP,Nginx,Apache,memcached,Redis,HHVM_LonesomeRoad的博客-程序员信息网

  这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP),适用于CentOS 6~7(包括redhat)、Debian 6~8、Ubuntu 12~16的32位和64位。脚本特性持续不断更新 源码编译安装,大多数源码是最新stable版,并从官...

FPGA与PCI-E_pcie与fpga通讯意义_ALIFPGA的博客-程序员信息网

从并行到串行:PCI Express(又称PCIe)是一种高性能、高带宽串行通讯互连标准,取代了基于总线的通信架构,如:PCI、PCI Extended (PCI-X) 以及加速图形端口(AGP)。PCI-e的主要性能:更低的生产成本更高系统吞吐量更好可扩展性和灵活性上述传统基于总线的互连几乎根本无法达到PCI-e所拥有的优秀性能。

aspx 页面数据绑定 前台数据绑定_aspx数据绑定_万事俱备,就差一个程序员了的博客-程序员信息网

asp.net代码中尖括号和百分号的含义在.aspx的文件中经常会碰到如下的代码,如:1、 里面放的变量名,如: Hello World Welcome to Beginning ASP.NET 3.5 on DateTime.Now.ToString() %> 输出结果为:Hello WorldWelcome to Beginning ASP.NET 3.5 o

随便推点

函数indexOf()和lastIndexOf()_python lastindexof_python基础教程的博客-程序员信息网

返回前面起第一个字符的位置indexOf(“字符”); 它是从前面开始数(从左边开始数),而且只找第一个,然后返回该字符的位置,索引号都是从0开始的。返回的是个数值。 var txt = “abcdefg”; alert(txt.indexOf(“d”));结果是3 如果找不到该字符 返回-1返回后面起第一个字符的位置lastIndexOf(“字符”) 从后面开始数 var txt =

vue微信网页开发微信JS-SDK自定义分享踩坑_东扯葫芦西扯瓜的博客-程序员信息网

vue微信网页开发自定义分享踩坑关于项目思路准备上代码微信网页开发的坑微信签名:微信授权分享页面的标题关于项目之前做的微信网页开发项目,用vue写的,前后端分离项目,使用vue-cli3搭建,路由模式history。客户要求销售员登录后可分享相关文章网页,并且分享标题内容自定,而客户需要授权登录,客户可以转发给客户,并且带上销售员信息。手机微信浏览器,电脑微信浏览器打开可以获取用户信息,记录用...

linux内核源码树_linux源码树下载_FHNCSDN的博客-程序员信息网

linux内核源码树扫盲分析sudo apt-get install tree//下载treetree//输入指令(该指令可以检查第三方工具包里的内容是否完整)可以看到如图的树状结构:linux内核源码:为什么内核大约1.3w个c文件,1100w行代码?linux是一个开源的,支持多架构多平台代码,可移植性非常高。但是linux内核编译出来一般就若干M,因为支持多平台,多架构,所以编译之前要配置,配置成适合目标平台来用。代码编译出来是给一个平台一个架构来用的,很多代码是不参与编译的。例

分布式系统的流量防卫兵Sentinel-入门指南_请叫我东子的博客-程序员信息网

1.介绍欢迎来到 Sentinel 的世界!这篇新手指南将指引您快速入门 Sentinel。Sentinel: 分布式系统的流量防卫兵1.1 Sentinel 是什么?随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。丰富的应用场景:Sentinel承接了阿里巴巴近 10 年的双十...

天津联通光猫创维DT541-csf改桥接_解老师的博客-程序员信息网

天津联通光猫创维DT541-csf改桥接首先科普一下光猫的桥接模式和路由模式。桥接模式:光猫相当于一个能起到起到光电转换作用的网线,并不会参与控制数据,宽带拨号,DHCP等功能需要由路由器来完成。路由模式:光猫相当于路由器,除光电转换外,包括PPPOE拨号、WIFI发射、IP地址分派、NAT转换的各种路由器的工作均由光猫完成。我认为,路由器和光猫应该是各司其职的。光猫最原始的功能就是光信号转换,也就是桥接模式,这种情况下,拨号由路由器来做,相对应的NAT数据转发也由路由器来做。如果把路由功能集成到光

推荐文章

热门文章

相关标签