2012年(11)
分类: C/C++
2012-11-06 17:14:47
Linux中的输入与输出
1.文件描述符:
文件在创建或打开的时候会返回的一个非负整数,内核用以标示正在访存的文件
2..标准输入输出和错误
当运行一个新程序时,所有shell都会为其打开三个文件描述符:标准输入输出和错误,任何一个或三个文件描述符都可以重定向到某一个文件
3.不用缓存的I/O
函数open、read、write、lseek以及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_FILENO和STDOUT_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,即-1,stdin和stdout定义在stdio.h中,分别表示标准输入和标准输出文件