stdin
、stdout
および他のタイプFILE *
。
STDIN_FILENO
、STDOUT_FILENO
、STDERR_FILENO
および他のタイプint
。
使用FILE *
機能は以下のとおりですfopen、fread、fwrite、fclose
ので、基本的にすることf
で始まります。
使用STDIN_FILENO
関数などは以下のとおりです。open、read、write、close
のように。
stdin
標準I / O、高度な入出力機能の他の部分は、定義されました<stdio.h>
。
STDIN_FILENO
一般的に直接定義されたシステムコールに、0、1、2のように定義されたファイル記述子、負でない整数であるように<unistd.h>
。
fileno()
関数は、取得するために使用することができますstream
使用するファイルディスクリプタ指定されたファイルストリームを:
#include <stdio.h>
#include <unistd.h>
int main()
{
printf("%d \n",fileno(stdin)); //0
printf("%d \n",fileno(stdout)); //1
printf("%d \n",fileno(stderr)); //2
return 0;
}
標準出力に、入力された標準の受信:
#include <stdio.h>
#include <unistd.h>
#define SIZE 100
int main()
{
int n;
char buf[SIZE];
while(n = read(STDIN_FILENO,buf,SIZE))
{
if(n != write(STDOUT_FILENO,buf,n))
perror("write error");
}
if(n < 0)
perror("read error");
return 0;
}