1. 程式人生 > >stdin stdout stderr的定義

stdin stdout stderr的定義

//C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\STDIO.H
...
struct _iobuf {
        char *_ptr;
        int   _cnt;
        char *_base;
        int   _flag;
        int   _file;
        int   _charbuf;
        int   _bufsiz;
        char *_tmpfname;
};
typedef struct _iobuf FILE;
...
#define stdin  (&_iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])
...



//c:\Microsoft SDK\src\crt\_file.c
...
FILE _iob[_IOB_ENTRIES] = {
	/* _ptr, _cnt, _base,  _flag, _file, _charbuf, _bufsiz */
	
	/* stdin (_iob[0]) */
	
	{ _bufin, 0, _bufin, _IOREAD | _IOYOURBUF, 0, 0, _INTERNAL_BUFSIZ },
		
        /* stdout (_iob[1]) */
		
	{ NULL, 0, NULL, _IOWRT, 1, 0, 0 },
	
	/* stderr (_iob[3]) */
	
	{ NULL, 0, NULL, _IOWRT, 2, 0, 0 },
	
};
...
每個程序開始。核心為程序開啟3個流分別是 0 1 2,
0就是stdin 1就是stdout 2就是strerr

相關推薦

stdin stdout stderr定義

//C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\STDIO.H ... struct _iobuf { char *_ptr; int _cnt; char

php的三種CLI常量:STDIN,STDOUT,STDERR

 PHP CLI(command line interface)中,有三個系統常量,分別是STDIN、STDOUT、STDERR,代表檔案控制代碼。   常量 描述     &n

C語言 fflush和stdin stdout stderr之間的聯絡

寫在前面: 閱讀這篇文章前,讀者應該大致瞭解C語言“緩衝區”的概念,在前面的文章中有詳細介紹。 **Stdin:** 是標準輸入,一般指鍵盤輸入到緩衝區裡的東西。 **Stdout:** C語言中的 stdout 是一個定義在<stdio.h>的巨集(macro),它

Python 標準輸入輸出stdin stdout stderr 對照c解讀 為理解Linux的檔案描述符fileno做鋪墊

參考連結 詳解stdin,stdout,stderr 作者: 茶鹽耙 How to print to stderr in Python 作者:stack overflow 標準輸入流:鍵盤、掃碼槍等輸入裝置輸入的東西。 標準輸出流:螢幕、檔案等接受的東西 緩衝區:記憶體? 檔

linux下的stdin,stdout,stderr詳解

轉自 : http://blog.csdn.net/yinjiabin/article/details/7419895 stdout, stdin, stderr的中文名字分別是標準輸出,標準輸入和標準錯誤。 在Linux下,當一個使用者程序被建立的時候,系統會自

Linux 下 stdin stdout stderr 的由來

現在就從linux kernel的原始碼的角度來分析該問題 fork()與execve()中stderr,stdio.stdout的繼承關係 其實用繼承這個詞好像不太準確,要準確一點,可能複製更適合. 首先有2點: 1:父程序fork出子程序後,是共享所有檔案描述符的(實

stdin,stdout,stderr

 *標準輸入輸出流 #include <stdio.h> extern FILE *stdin; extern FILE *stdout; extern FILE *stderr; //man 1.stdin *0;     //標準檔案描述符; *標準輸入流;

linux下的stdin,stdoutstderr

參考自 在linux中經常會看到stdin,stdout和stderr,這3個可以稱為終端(Terminal)的標準輸入(standard input),標準輸出(standard out)和標準錯誤輸出(standard error)。 通過man stdin檢視手冊,可以看到它們都是

控制檯重定向stdout stderr

示例$ kill -HUP 1234 >killout.txt 2>killerr.txt這個命令就會將輸出和錯誤資訊分別存放在一個單獨的檔案中.如果我們要將這兩個輸出放在一個檔案中,我們可以使用>&來組合這兩種輸出.如:$ kill -1 1234 >killouterr.t

linux 關於標準輸入輸出錯誤 STDIN STDOUT STDEER

入門: stdout, stdin, stderr的中文名字分別是標準輸出,標準輸入和標準錯誤。 在Linux下,當一個使用者程序被建立的時候,系統會自動為該程序建立三個資料流,也就是題目中所提到的這三個。那麼什麼是資料流呢(stream)?我們知道,一個程式要執行,

freopen (stdin stdout ) 詳解+例項

今天做USACO  用到了檔案的操作。 之前做USACO只是格式化的些 寫  freopen("xxx.in","r",stdin)  和"freopen("xxx.out","w",stdout)"  百度百科上是這麼介紹的:    函式名: freopen  功 能: 替換一個流,或者說重新分配檔案指標,

linux標準輸入流,標準輸出流 stdin stdout大概是什麼個概念

在linux中把所有東西都看作是檔案來處理,比如印表機,比如網絡卡,比如音效卡等等 stdin也是一個檔案 stdout 也是一個檔案 每當啟動一個程序的時候,都會有一個預設的stdin和stdout生成, 預設情況下,stdin就是鍵盤 預設情況下,

控制檯重定向stdout & stderr

歡迎交流 E-mail:ce123#126.com(#->@) QQ:350725201 嵌入式開發交流群: (1)280352802(已滿) (2)289195589 宣告:版權所有,歡迎轉載! 轉載請註明出處:http://blog.csdn.net/ce123

shell基礎02 標準文件描述符STDINSTDOUTSTDERR和輸入輸出重定向

stdin isp pen blank input open 日誌文件 重定向 分開 文件描述符 縮寫 描述

python sys中的stdinstdoutstderr

#testing stdout   >>> print 'Hello World!' #該語句會在標準輸出的螢幕上列印 Hello World!   Hello&nbs

python sys.stdin、sys.stdout和sys.stderr

學習並轉載自  https://www.cnblogs.com/guyuyuan/p/6885448.html   標準輸入:一般是鍵盤。stdin物件為直譯器提供輸入字元流,一般使用raw_input()和input()函式。 標準輸出:一般是螢幕。stdout物件接收到print

python sys.stdin、sys.stdout和sys.stderr

brush flush logs tps tde pri .com ron stdout 學習並轉載自 https://www.cnblogs.com/guyuyuan/p/6885448.html 標準輸入:一般是鍵盤。stdin對象為解釋器提供輸入字符流,一般使用

詳解C語言中的stdinstdoutstderr

我們在寫C程式時經常遇到printf(),fprintf(),perror(),這些東西到底有什麼作用。說到這不得不提及stdin,stdout,stderr。想想,我們在用C去寫檔案時的操作,File *fp=fopen(),這個fp就是我們向系統申請的,相當於一通

詳解stdinstdoutstderr

     我們在寫C程式時經常遇到printf(),fprintf(),perror(),這些東西到底有什麼作用。說到這不得不提及stdin,stdout,stderr。想想,我們在用C去寫檔案時的操作,File *fp=fopen(),這個fp就是我們向系統申請的,相當於

第4章 處理使用者輸入與顯示資料------------(標準檔案描述符、STDIN/STDERR/STDOUT、臨時重定向、永久重定向exec)

4.4 顯示資料 4.4.1 標準檔案描述符          Linux系統將每個物件當作檔案處理。這包括輸入和輸出過程。Linux使用檔案描述符(file descriptor)標識每個檔案物件。檔案描述符是一個非負整數,可以唯一地標識會話中開啟的檔案。每個進行最多可以