linux
何谓标准输出(stdout)和标准输入(stdin)?
一、何谓标准输出(stdout)和标准输入(stdin)?
stdin是操作系统调用应用程序的时候事先打开的两个文件,你程序执行的时候scanf等默认输入系统调用,操作系统就从这个文件里面取给你的程序,有可能是键盘,也有可能是其它文件,有具体运行时的命令决定。 stdout类似
二、linux中stdout是什么?
我的回答:stdout是终端的标准输出。
我的分析:在Linux中执行命令,一般会打开三个标准文件。包括:标准输入文件stdin,标准输出文件stdout和标准错误输出的文件stderr。
std代表标准的:standard,input/output表示输入/输出。err代表error错误。
标准输入文件,一般是stdin,对应的终端是键盘。
标准输出文件stdout和标准错误输出文件stderr,对应的终端是屏幕。
一般进程从标准输入文件中得到输入数据,比如参数。把正常输出数据输出到标准输出文件stdout,把错误信息送到标准错误输出文件中。
Linux中一般用0表示stdin标准输入,用1表示stdout标准输出,用2表示stderr标准错误输出。
一般在默认的情况下,标准输出stdout是行缓冲的,是把输出放到一个buffer里面,只有换行的时候,才会输出到屏幕。
一般标准错误输出stderr是无缓冲的,直接输出。
三、控制台,stdin-stdout之间是什么关系?
1.stdin:标准输入,即从键盘输入的字符、数字、标点符号等信息。
2.stdout:标准输出,显示器屏幕显示,或输出到磁盘,或打印机打印出来的信息。
当一个用户进程被创建的时候,系统会自动为该进程创建stdin(=0)、stdoutr(=1)等数据流
四、stdout类的对象是?
C语言中的 stdout 是一个定义在<stdio.h>的宏(macro),它展开到一个 FILE* (“指向 FILE 的指针”)类型的表达式(不一定是常量),这个表达式指向一个与标准输出流(standard output stream)相关连的 FILE 对象。
五、stdin是什么类型符?
stdin是文件描述符,代表标准输入(键盘等),也就是说在linux中stdin称为终端(Terminal)的标准输入(standard input)。
在linux中经常会看到stdin,stdout和stderr,这3个可以称为终端(Terminal)的标准输入(standard input),标准输出( standard out)和标准错误输出(standard error)。
通过man stdin查看手册,可以看到它们都是在stdio.h中定义的。 当linux开始执行程序的时候,程序默认会打开这3个文件流,这样就可以对终端进行输入输出操作。
六、C语言fflush(stdin);的用法?
首先,你的第二个 fflush(stdin);位置不正确,它一般用在cin的前面另外, fflush(stdin);只能清除输入的内容,并不能清除输入错误的状态而在c++中,你可以用cin.sync();代替它并在它的前面加 cin.clear(); //清错误状态
七、linux下的tar.gz文件为什么解压时却提示gzip: stdin: not in gzip format?
原因是这个压缩包没有用gzip格式压缩,所以不用加z指令。在解压tar.gz文件的时候报错[Sun@localhost Downloads]$ tar -zxvf clion-141.351.4.tar.gzgzip: stdin: not in gzip formattar: Child returned status 1tar: Error is not recoverable: exiting now.改为[Sun@localhost Downloads]$ tar -xvf clion-141.351.4.tar.gz,这样就可以了。把下载下来的文件重命名:mvapache-tomcat-6.0.26.tar.gzapache-tomcat-6.0.26.tar再执行解压命令:tar-zxvfapache-tomcat-6.0.26.tar上面就是Linux解压tar.gz文件出错的解决方法介绍了,只要知道tar.gz文件出错的原因,就能快速解决问题.
八、docker logs收集的是stdout的吗?
是的,如果需要收集错误日志,将其重定向到stdout,在执行命令后面加2>&1
九、C语言fflush(stdin)是什么意思?
调用
fork
后,子进程
获得父进程数据段
、堆
和栈
的副本
。缓冲区
是在堆
上的,所以子进程
也获得了父进程
的缓冲区
。标准I/O的
缓冲模式
有三种(全缓冲、行缓冲、不缓冲)根据你的程序来看,极有可能是全缓冲模式。
全缓冲模式默认要达到
4096
字节才会释放缓冲区,除非手动释放缓冲区。下列程序使用了
fflush
函数手动释放缓冲区,则不会出现上述问题。当然,你也可以利用
setbuf函数族
传入mode参数
来设置它的缓冲类型
._IONBF: 不缓冲 _IOLBF: 行缓冲 _IOFBF: 全缓冲
参考 ---《Linux系统编程手册》上册 P195
十、python sys.stdout.write这个怎么理解?
sys.stdout是标准输出文件。write就是往这个文件写数据。合起来就是打印数据到标准输出。对初学者来说,和print功能一样。
热点信息
-
在Python中,要查看函数的用法,可以使用以下方法: 1. 使用内置函数help():在Python交互式环境中,可以直接输入help(函数名)来获取函数的帮助文档。例如,...
-
一、java 连接数据库 在当今信息时代,Java 是一种广泛应用的编程语言,尤其在与数据库进行交互的过程中发挥着重要作用。无论是在企业级应用开发还是...
-
一、idea连接mysql数据库 php connect_error) { die("连接失败: " . $conn->connect_error);}echo "成功连接到MySQL数据库!";// 关闭连接$conn->close();?> 二、idea连接mysql数据库连...
-
要在Python中安装modbus-tk库,您可以按照以下步骤进行操作: 1. 确保您已经安装了Python解释器。您可以从Python官方网站(https://www.python.org)下载和安装最新版本...