热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

笔记1-2:将标准输入复制到标准输出

将标准输入复制到标准输出:#include<apue.h>#include<unistd.h>#defineBUFFSIZE4096intmain(intargc

将标准输入复制到标准输出:

 

#include

#include

#define BUFFSIZE 4096

int main(int argc, char ** argv)

{

   int  n;

   char buf[BUFFSIZE];

   while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0)

      if (write(STDOUT_FILENO, buf, n) != n)

          err_sys("write error\n");

   if (n <0)

      err_sys("read error\n");

   return 0;

}

 

函数openreadwritelseekclose等提供了不用缓冲的I/O。这些函数都是使用文件描述符。文件描述符是一个非负整数,内核用它来标识进程正在访问的文件。

两个常量STDIN_FILENOSTDOUT_FILENO头文件中定义,它们指定了标准输入与标准输出的文件描述符。它们的典型值分别为01.

        若以下面方式运行命令:

   ./a.out outfile

那么名为infile的文件的内容会复制到名为outfile的文件中。

 

下面程序是以标准I/O的方式实现相同功能:

 

#include

#include

int main(int argc, char ** argv)

{

   int  c;

   while ((c = getc(stdin)) != EOF)

      if (putc(c, stdout) == EOF)

          err_sys("write error\n");

   if (ferror(stdin))

      err_sys("read error\n");

   return 0;

}

 

 

 


推荐阅读
author-avatar
幽雅闲居xl
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有