码迷,mamicode.com
首页 > 其他好文 > 详细

stdin,stdout 和 STDOUT_FILENO,STDIN_FILENO

时间:2019-11-11 13:05:02      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:erro   高级   fopen   文件描述符   nis   pen   def   clu   输入输出   

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;
}

stdin,stdout 和 STDOUT_FILENO,STDIN_FILENO

标签:erro   高级   fopen   文件描述符   nis   pen   def   clu   输入输出   

原文地址:https://www.cnblogs.com/chay/p/11834066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!