Chinaunix首页 | 论坛 | 博客
  • 博客访问: 98903
  • 博文数量: 11
  • 博客积分: 271
  • 博客等级: 二等列兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-23 16:34
文章分类
文章存档

2012年(11)

我的朋友

分类: C/C++

2012-11-06 17:14:47

Linux中的输入与输出

1.文件描述符:

文件在创建或打开的时候会返回的一个非负整数,内核用以标示正在访存的文件

2..标准输入输出和错误

当运行一个新程序时,所有shell都会为其打开三个文件描述符:标准输入输出和错误,任何一个或三个文件描述符都可以重定向到某一个文件

3.不用缓存的I/O

函数openreadwritelseek以及close提供了不用缓存的I/O,他们都使用文件描述符进行工作

示例:

#include

#define BUFFER_SIZE      51

int main( int argc, char *argv[] )

{

     int     n;

     char    buf[BUFFER_SIZE];

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

     {

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

              {

                       printf( "write error!\n" );

              }

     }

     if( n < 0 )

     {       

              printf( "read error!\n" );

     }

}

其中:STDIN_FILENOSTDOUT_FILENO是标准输入和输出文件描述,包含在unistd.h头文件中

read一次性读取一个BUFFER_SIZE长度,write输出n个字符到标准输出

4.标准I/O

示例:

#include

#include

 

int main( int argc, char *argv[] )

{

         int     n;

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

         {

                   putc(n, stdout);

         }

return 0;

}

         说明:getc一次读取一个字符,然后puts写入到标准输出,当getc读到最后一个字节时,返回一个常数EOF,-1stdinstdout定义在stdio.h中,分别表示标准输入和标准输出文件

阅读(1787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~