admin管理员组文章数量:1130349
stdin, stdout, stderr
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、pandas是什么?
- 二、使用步骤
- 1.引入库
- 2.读入数据
- 总结
前言
在通常情况下,Linux/UNIX每个程序在开始运行的时刻,都会打开3个已经打开的stream. 分别用来输入,输出,打印诊断和错误信息。通常他们会被连接到用户终端。这3个句柄的类型为指向FILE的指针。可以被fprintf、fread等函数使用,他们在程序开始启动后,stdin, stdout, and stderr 的文件描述符是 0, 1和2,其它的文件描述符则排在其后。
Linux的本质就是一切皆文件,输入输出设备也是以文件形式存在和管理的。
一、
*在linux系统调用中,标准输入描述字用stdin,标准输出用stdout,标准出错用stderr表示,但在一些调用函数,
* 引用了STDIN_FILENO表示标准输入才,同样,标准出入用STDOUT_FILENO,标准出错用STDERR_FILENO.请问,
* 他们有什么区别吗?stdin等是FILE *类型,属于标准I/O,在<stdio.h>。STDIN_FILENO等是文件描述符,
* 是非负整数,一般定义为0, 1, 2,属于没有buffer的I/O,直接调用系统调用,在<unistd.h>
二、使用步骤
1.例子
代码如下(示例):
| #include "stdio.h" #include <unistd.h> int main(int argc, char** argv) { for(int i = 0; i < 5; i++) { fprintf(stdout, "This is stdout[%d]", i); sleep(1); } sleep(1); for(int i = 0; i < 5; i++) { fprintf(stderr, "This is stderr[%d]", i); sleep(1); } return 0; } |
2.
(示例):
| #include "stdio.h" #include <unistd.h> int main(int argc, char** argv) { for(int i = 0; i < 5; i++) { fprintf(stdout, "This is stdout[%d]\n", i); sleep(1); } sleep(1); for(int i = 0; i < 5; i++) { fprintf(stderr, "This is stderr[%d]\n", i); sleep(1); } return 0; } |
该处使用的url网络请求的数据。
总结
提示:stderr是不缓存的,stdout则进行行间缓存。接下来我们看下行间缓存的效果
stdin, stdout, stderr
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、pandas是什么?
- 二、使用步骤
- 1.引入库
- 2.读入数据
- 总结
前言
在通常情况下,Linux/UNIX每个程序在开始运行的时刻,都会打开3个已经打开的stream. 分别用来输入,输出,打印诊断和错误信息。通常他们会被连接到用户终端。这3个句柄的类型为指向FILE的指针。可以被fprintf、fread等函数使用,他们在程序开始启动后,stdin, stdout, and stderr 的文件描述符是 0, 1和2,其它的文件描述符则排在其后。
Linux的本质就是一切皆文件,输入输出设备也是以文件形式存在和管理的。
一、
*在linux系统调用中,标准输入描述字用stdin,标准输出用stdout,标准出错用stderr表示,但在一些调用函数,
* 引用了STDIN_FILENO表示标准输入才,同样,标准出入用STDOUT_FILENO,标准出错用STDERR_FILENO.请问,
* 他们有什么区别吗?stdin等是FILE *类型,属于标准I/O,在<stdio.h>。STDIN_FILENO等是文件描述符,
* 是非负整数,一般定义为0, 1, 2,属于没有buffer的I/O,直接调用系统调用,在<unistd.h>
二、使用步骤
1.例子
代码如下(示例):
| #include "stdio.h" #include <unistd.h> int main(int argc, char** argv) { for(int i = 0; i < 5; i++) { fprintf(stdout, "This is stdout[%d]", i); sleep(1); } sleep(1); for(int i = 0; i < 5; i++) { fprintf(stderr, "This is stderr[%d]", i); sleep(1); } return 0; } |
2.
(示例):
| #include "stdio.h" #include <unistd.h> int main(int argc, char** argv) { for(int i = 0; i < 5; i++) { fprintf(stdout, "This is stdout[%d]\n", i); sleep(1); } sleep(1); for(int i = 0; i < 5; i++) { fprintf(stderr, "This is stderr[%d]\n", i); sleep(1); } return 0; } |
该处使用的url网络请求的数据。
总结
提示:stderr是不缓存的,stdout则进行行间缓存。接下来我们看下行间缓存的效果
版权声明:本文标题:stdin, stdout, stderr 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/IT/1687394957a97714.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论