精华内容
下载资源
问答
  • 什么是标准输入、标准输出(stdin、stdout)?

    万次阅读 多人点赞 2019-06-12 10:49:23
    原文地址:什么是标准输入、标准输出(stdin、stdout)?...而标准输入和标准输出是什么的?它们是用于IO的。 那么它们属于IO的哪个部分? 内存?还是外部设备? 答案显然是外部设备(逻辑上的外部设...

    原文地址:什么是标准输入、标准输出(stdin、stdout)?

    要弄清什么是标准输入输出。首先需要弄懂什么是IO。
    IO 的 I 是 Input 的意思,O 是 output 的意思。
    意味着输入和输出。
    更确切的含义是:
    I:从外部设备输入到内存
    O:从内存输出到外部设备

    而标准输入和标准输出是干什么的?它们是用于 IO 的。
    那么它们属于 IO 的哪个部分?
    内存?还是外部设备?
    答案显然是外部设备(逻辑上的外部设备,为什么?接着看)

    更具体的含义?
    在 linux 操作系统中,外部设备用什么表示?是用文件。
    linux 中一切设备皆是文件!
    因此标准输入和输出更具体的含义是文件

    它们是哪两个文件?
    它们是 /dev/stdin 这个文件和 /dev/stdout 这个文件。
    也就是说所谓的标准输入和标准输出其实就是两个 linux 下的文件

    linux 的文件类型有:
    1、普通文件2、字符设备文件3、块设备文件4、目录文件
    5、链接文件6、管道文件7、套接字文件
    思考一下?它们是什么文件?它们在 /dev 目录下,它们是设备文件吗?

    那么所谓的从标准输入读是什么意思?
    逻辑上来看:
    就是打开 /dev/stdin 这个文件,然后把这个文件里的内容读进来。
    输出到标准输出是什么意思?
    逻辑上来看:
    就是打开 /dev/stdout 这个文件,然后把内容输出到这个文件里去。

    为什么是从逻辑上来看?因为它们不是设备文件!!!
    所以它们不代表一个设备。linux里一切皆是文件,设备是文件,但是文件不一定是设备!
    那它们是什么文件?他们是链接文件。(可以用 ls -l /dev 来查看 l 开头的就是链接文件。也可以用 file 命令查看其文件类型,命令:file /dev/stdin)
    什么是链接文件?文件内容是另一个文件的地址的文件称为链接文件。
    因此,打开、读或者写 /dev/stdin 和 /dev/stdout 实际上是打开、读或者写这两个文件存放的地址对应的设备文件。

    展开全文
  • 而标准输入和标准输出是什么的?它们是用于IO的。 那么它们属于IO的哪个部分? 内存?还是外部设备? 答案显然是外部设备(逻辑上的外部设备,为什么?接着看)。 更具体的含义? 在linux操作系统中,外部设备用什么...

    什么是标准输入,标准输出(stdin,stdout

    要弄清什么是标准输入输出。首先需要弄懂什么是IO。
    IO的I是Input的意思,O是output的意思。意味着输入和输出。

    更确切的含义是
    I:从外部设备输入到内存
    O:从内存输出到外部设备
    而标准输入和标准输出是干什么的?它们是用于IO的。
    那么它们属于IO的哪个部分?
    内存?还是外部设备?
    答案显然是外部设备(逻辑上的外部设备,为什么?接着看)。
    更具体的含义?
    在linux操作系统中,外部设备用什么表示?是用文件。
    linux中一切设备皆是文件!
    因此标准输入和输出更具体的含义是文件。
    它们是哪两个文件?
    它们是/dev/stdin这个文件和/dev/stdout这个文件。
    也就是说所谓的标准输入和标准输出其实就是两个linux下的文件。
    linux的文件类型有:
    1、普通文件2、字符设备文件3、块设备文4、目录文件
    5、链接文件6、管道文件7、套接字文件
    思考一下?它们是什么文件?它们在/dev目录下,它们是设备文件吗?
    那么所谓的从标准输入读是什么意思?
    逻辑上来看:
    就是打开/dev/stdin这个文件,然后把这个文件里的内容读进来。
    输出到标准输出是什么意思?
    逻辑上来看:
    就是打开/dev/stdout这个文件,然后把内容输出到这个文件里去。
    为什么是从逻辑上来看?因为它们不是设备文件!!!
    所以它们不代表一个设备。linux里一切皆是文件,设备是文件,但是文件不一定是设备!
    那它们是什么文件?他们是链接文件。(可以用ls -l /dev来查看 l开头的就是链接文件。)
    什么是链接文件?文件内容是另一个文件的地址的文件称为链接文件。
    因此,打开、读或者写 /dev/stdin和/dev/stdout 实际上是打开、读或者写这两个文件存放的地址对应的设备文件。
    明白它们是链接文件不是设备文件有什么用?
    明白这一点才能知道重定向失效的原理。

    展开全文
  • 本文将从基本原理解析标准输入,标准输出的由来(最终结论见最后). 对于一个运行的程序,不可避免地要进行某些输入输出操作,也即I/O操作.对于I/O操 作,C语言提供了一系列标准I/O函数,来完成输入输出任务. 最主要的...

    本文将从基本原理解析标准输入,标准输出的由来(最终结论见最后).

    对于一个运行的程序,不可避免地要进行某些输入输出操作,也即I/O操作.对于I/O操 作,C语言提供了一系列标准I/O函数,来完成输入输出任务.

    最主要的标准I/O函数包括:fopen()(打开一个文件),fprintf()(写文件),fscanf()(读文 件).读写一个文件的步骤为:

    打开文件,同时得到指向文件的指针,然后以该指针为参数, 调用相应的读,写函数进行文 件读写.例如:若想从键盘获取输入(也即读文件,Unix系统下程序可将键盘和屏幕当作普通文件对待),需首先使用fopen()打开键盘这个文件,获 得指向它的指针,然后以该指针为参数调用fscanf()读取该文件内容,从而获得键盘输入;若 想输出信息到显示器(也即写文件),需首先打开显示器这个文件,获得指向它的指针,然后 以该指针为参数调用fprintf()向该文件写入信息, 从而向显示器输出信息.以上步骤在 Unix系统中,可通过以下代码实现:

     

    1. /*  
    2.     在Unix系统下,读取键盘输入,向屏幕输入信息. 
    3.     手动打开键盘和显示器文件并进行读写. 
    4.  */  
    5.   
    6. #include <stdio.h>   
    7.   
    8. int main(void)  
    9. {  
    10.     FILE *pf;  
    11.     pf=fopen("/dev/tty","a+");       //终端字符文件  
    12.     char sbuf[100];  
    13.   
    14.     fprintf(pf, "Please input a string: ");  
    15.     fscanf(pf,"%s",sbuf);  
    16.     fprintf(pf,"The input string is : \"%s\".\n",sbuf);  
    17.   
    18.     return 0;  
    19. }  

    注:/dev/tty为终端字符文件,该文件是对键盘,显示器的抽象,向该文件写入,则写入内 容将被显示在显示器,读该文件,则将从键盘获得输入.

    采用以上方式获取键盘输入,向屏幕输出将是系统相关的(因为不同系统对键盘,屏幕的 抽象方式不同).为了封装键盘,屏幕I/O操作的底层实现细节,C语言要求系统为每个程序 提供两个指针,这两个指针分别指向键盘和屏幕,并将这两个指针命名为:stdin和 stdout.这两个指针就是所谓的标准输入和标准输出.此时,从键盘获取输入,向屏幕输出 信息的代码可写为:

    1. /*  
    2.    在任意系统下,读取键盘输入,向屏幕输入信息. 
    3.    显式得使用标准输入,标准输出指针. 
    4.  */  
    5.       
    6.   
    7. #include <stdio.h>    
    8. int main(void)  
    9. {   
    10.     char sbuf[100];   
    11.     fprintf(stdout, "Please input a string: ");   
    12.     fscanf(stdin,"%s",sbuf);   
    13.     fprintf(stdout,"The input string is : \"%s\".\n",sbuf);   
    14.     return 0;  
    15. }  
    16.       
    1. /*  
    2.    在任意系统下,读取键盘输入,向屏幕输入信息. 
    3.    显式得使用标准输入,标准输出指针. 
    4.  */  
    5.       
    6.   
    7. #include <stdio.h>   
    8. int main(void)  
    9. {   
    10.     char sbuf[100];   
    11.     fprintf(stdout, "Please input a string: ");   
    12.     fscanf(stdin,"%s",sbuf);   
    13.     fprintf(stdout,"The input string is : \"%s\".\n",sbuf);   
    14.     return 0;  
    15. }  
    16.       

    与代码1不同,该代码将能够运行于任何支持标准C的系统.由于从标准输入获取输入,向标 准输出显示信息是非常常用的操作(几乎每个控制台程序均包含该操作),因此C语言提供 了专门用于从标准输入获取信息和向标准输出显示信息的函数,即scanf()和printf().此 时,从键盘获取输入,向屏幕显示信息的代码可写为:

    1. /*  
    2.    标准的C程序,读取键盘输入,向屏幕输入信息. 
    3.    隐式得使用标准输入,标准输出指针. 
    4.  */  
    5.   
    6. #include <stdio.h>    
    7. int main(void)  
    8. {   
    9.     char sbuf[100];   
    10.     printf("Please input a string: ");   
    11.     scanf("%s",sbuf);   
    12.     printf("The input string is : \"%s\".\n",sbuf);   
    13.     return 0;  
    14. }  
    15.       
    1. /*  
    2.    标准的C程序,读取键盘输入,向屏幕输入信息. 
    3.    隐式得使用标准输入,标准输出指针. 
    4.  */  
    5.   
    6. #include <stdio.h>   
    7. int main(void)  
    8. {   
    9.     char sbuf[100];   
    10.     printf("Please input a string: ");   
    11.     scanf("%s",sbuf);   
    12.     printf("The input string is : \"%s\".\n",sbuf);   
    13.     return 0;  
    14. }  
    15.       
    从中可看出,使用scanf()和printf()时,无需向其提供文件指针,这是因为它们知道所需 的文件指针,它们操作的对象便是标准输入和标准输出所指向的文件.

    结论:

    标准输入,标准输出是操作系统为C程序提供的文件指针,默认情况下,它们分别指向键盘 和屏幕.标准输入函数scanf()将从标准输入指向的文件读取信息,标准输出函数 printf()将输出信息到标准输出指向的文件.

    注:标准输入,标准输出并非必须指向键盘或屏幕,用户程序可改变它们的指向.

     

     

    转自:http://blog.csdn.net/astropeak/article/details/6651747

    展开全文
  • php的标准输入与输出是什么? 一、总结 php的标准输入与输出(STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')) 1、STDIN是一个文件句柄,等同于fopen("php://stdin", 'r') 二、php的标准输入与输出 ...

    php的标准输入与输出是什么?

    一、总结

    php的标准输入与输出(STDIN是一个文件句柄,等同于fopen("php://stdin", 'r'))

    1、STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')

     

    二、php的标准输入与输出

    <?php
    // ask for input
    fwrite(STDOUT, "Enter your name: ");
    
    // get input
    $name = trim(fgets(STDIN)); 接收用户输入
    
    // write input back
    fwrite(STDOUT, "Hello, $name!");
    ?> 

    运行方法:
    1.运行cmd
    2.跳至php.exe所在目录
    3.敲入命令

    还是用脚本来说话:



    运行:php inouttest.php

    运行结果为:
    Enter your name: davy
    Hello, davy!

    其中:


    常量 说明
    STDIN 标准的输入设备
    STDOUT 标准的输出设备
    STDERR 标准的错误设备


    可以在PHP脚本里使用这三个常量,以接受用户的输入,或者显示处理和计算的结果。

    PHP处理过程如下:fwrite()函数首先会向标准的输出设备写一条消息,询问用户的姓名。然后它会把从标准输入设备获得的用户输入信息读取到一个PHP变量里,并它把合并成为一个字符串。然后就用fwrite()把这个字符串打印输出到标准的输出设备上

    另举两例:
     1 <?php
     2 while($str = fread(STDIN,1000)){
     3      echo "you print:".$str;
     4 }
     5 ?>
     6 
     7 
     8 
     9 <?php
    10 //PHP CLI中,有三个系统常量,分别是STDIN、STDOUT、STDERR,代表文件句柄。
    11 
    12 /**
    13  *@ 标准输入
    14  *@ php://stdin & STDIN
    15  *@ STDIN是一个文件句柄,等同于fopen("php://stdin", 'r')
    16 
    17  */
    18 $fh = fopen('php://stdin', 'r');
    19 echo "[php://stdin]请输入任意字符:";
    20 $str = fread($fh, 1000);
    21 echo "[php://stdin]你输入的是:".$str;
    22 fclose($fh);
    23 echo "[STDIN]请输入任意字符:";
    24 $str = fread(STDIN, 1000);
    25 echo "[STDIN]你输入的是:".$str;
    26 
    27 /**
    28  *@ 标准输出
    29  *@ php://stdout & STDOUT
    30  *@ STDOUT是一个文件句柄,等同于fopen("php://stdout", 'w')
    31  */
    32 $fh = fopen('php://stdout', 'w');
    33 fwrite($fh, "标准输出php://stdout/n");
    34 fclose($fh);
    35 fwrite(STDOUT, "标准输出STDOUT/n");
    36 
    37 /**
    38  *@ 标准错误,默认情况下会发送至用户终端
    39  *@ php://stderr & STDERR
    40  *@ STDERR是一个文件句柄,等同于fopen("php://stderr", 'w')
    41  */
    42 $fh = fopen('php://stderr', 'w');
    43 fwrite($fh, "标准错误php://stderr/n");
    44 fclose($fh);
    45 fwrite(STDERR, "标准错误STDERR/n");

     

     

     

    转载于:https://www.cnblogs.com/Renyi-Fan/p/9099570.html

    展开全文
  • 标准输入、标准输出究竟是什么? .

    千次阅读 2012-02-18 12:44:40
    本文将从基本原理解析标准输入,标准输出的由来(最终结论见最后). 对于一个运行的程序,不可避免地要进行某些输入输出操作,也即I/O操作.对于I/O操 作,C语言提供了一系列标准I/O函数,来完成输入输出任务. 最主要的...
  • linux输出·输入文件和标准输入 标准输出是什么意思啊Unix/Linux/BSD 都有三个特别文件,分别 1)标准输入 即 STDIN , 在 /dev/stdin , 一般指键盘输入, shell里代号是 0 2) 标准输出 STDOUT, 在 /dev/stdout,
  • 标准输出

    2015-05-07 11:34:37
    linuxshell中"2>&1"含义: nohup commend >/dev/null 2>... 1 更准确的说应该文件...与1结合就代表标准输出了,就变成错误重定向到标准输出. 注意: 试想2>1代表什么,2与>结合代...
  • 程序员都知道一个程序启动后就伴随着该程序而来的3个I/O句柄,标准输入,标准输出和标准错误输出。为什么是这样呢?教材知识告诉我们现象,但从来没有回答为什么。我不知道为什么要刻意或无意的不提这个“为什么”。...
  • 因为stderr不带缓冲的,每个输出都会立即flush。而stdout行缓冲的,要等到缓冲满了才flush,或者手动调fflush。 前者更符合作为日志的需要,不然你程序执行过程中core了,缓冲里的遗言可能就丢了,而丢掉的往往...
  • 对标准输入设备和标准输出设备的输入输出简称为标准I/O (2)文件流 对在外存磁盘上文件的输入食醋胡简称为文件I/O (3)字符串流 对内存中指定的字符串存储空间的输入输出简称为串I/O 2.什么是流 01:09 3.流类库...
  • Linux的标准输入、标准输出和标准错误 什么是文件描述符? 文件描述符一个简单的正整数,用以标明每一个被进程所打开的文件和socket。 最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出...
  • 2.日志信息,就是程序中的标准input/output stream,只是将i/o的目的地输出到console这个程序而已。 3.console个单独的系统程序,console单独的程序,否则怎么动态输出log信息?的,console底层就是c语言的...
  • 1. 为什么我们程序直接使用printf或者write(0,...)就可以输出内容,而不需要首先调用open,因为我们的进程shell的子进程,它直接从shell继承了文件描述符。 2.假如需要我们程序自己打开标准输入输出的话,可以...
  • 1.什么是标准输入输出流 System.inInputStream,标准输入流,默认可以从键盘输入读取字节数据。 System.outPrintStream,标注输出流,默认可以向Console中输出字符和字节数据。 2.修改标准输入输出流 修改...
  • 如题:输出流缓冲区的作用很好理解,可以先将内容写到缓冲区,再一起写  ...需要马上将字节读入到参数buf上,这和不适用缓冲区的read函数有什么 区别?这个问题思考了很久了,希望有大神解惑。
  • 1.从标准输入逐个字符复制到标准输出,一个简单白给的题目,提到标准输入输出,直接就想到scanf和printf这两个函数,对于取字符还有getchar和putchar两个函数,预期效果是什么?从键盘架输入一个字符,从显示器输出...
  • 输入输出重定向、2>&1、标准输入、标准输出、...1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出),为什么1前面需要&?当没有&时,1会被认为一个普通的文件,有&表示重定
  • linux标准输入输出

    千次阅读 2017-06-28 16:19:22
    一 简介 标准输入输出的准确定义是什么?没找到一个说得比较满意的答案,这里给出自己的理解:所谓的标准输入输出是指程序默认...sdtin, stdout, stderr分别称为标准输入,标准输出,标准错误输出, 它们的声明如下: /*
  • android location 数据标准输出,原始输出和卫星状态的变化。标准输出就是由系统api已经封装好进行输出经纬度等等。原始数据有很多也可以解出来经纬度,解状态,卫星状态颗数。什么卫星组成,信噪比等等。卫星状态...
  • android location 数据标准输出,原始输出和卫星状态的变化。标准输出就是由系统api已经封装好进行输出经纬度等等。原始数据有很多也可以解出来经纬度,解状态,卫星状态颗数。什么卫星组成,信噪比等等。卫星状态...
  • 什么是标准输入和标准输出? 标准输入(stdin)和标准输出(stdout)程序与外面世界可以进行相互的数据流。当从控制台运行一个程序,stdin就是把键盘上的输入读入到程序里面,stdout把输出数据打印到屏幕上。 ...
  • 标准输入输出

    2017-02-16 21:52:00
    什么是标准输入输出流(掌握...* System.outPrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据 修 改标准输入输出流(了解) * 修改输入流: System.setIn(InputStream) * 修改输出流: System.se...
  • 1、Linux 系统中标准输入,标准输出和错误输出的文件描述符时什么? 2、Linux 系统中重定向符号 > 和 >> 的区别是什么? 3、Linux 系统中管道的作用是什么? 命令类 1、将/etc/issue 文件中的内容转换为...
  • 这个应该操作系统里的概念,一般都会有这三个吧,标准输入设备 (stdin) 标准输出设备 (stdout) 标准错误设备 (stderr) 理解这个有什么作用呢,这我在写一个shell脚本的时候遇到的问题,我需要在脚本中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,592
精华内容 1,836
关键字:

标准输出是什么