笔记1-2: 将标准输入复制到标准输出
2013-05-21 17:28
309 查看
将标准输入复制到标准输出:
#include <apue.h>
#include <unistd.h>
#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;
}
函数open、read、write、lseek、close等提供了不用缓冲的I/O。这些函数都是使用文件描述符。文件描述符是一个非负整数,内核用它来标识进程正在访问的文件。
两个常量STDIN_FILENO和STDOUT_FILENO在<unistd.h>头文件中定义,它们指定了标准输入与标准输出的文件描述符。它们的典型值分别为0和1.
若以下面方式运行命令:
./a.out < infile > outfile
那么名为infile的文件的内容会复制到名为outfile的文件中。
下面程序是以标准I/O的方式实现相同功能:
#include <apue.h>
#include <stdio.h>
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;
}
#include <apue.h>
#include <unistd.h>
#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;
}
函数open、read、write、lseek、close等提供了不用缓冲的I/O。这些函数都是使用文件描述符。文件描述符是一个非负整数,内核用它来标识进程正在访问的文件。
两个常量STDIN_FILENO和STDOUT_FILENO在<unistd.h>头文件中定义,它们指定了标准输入与标准输出的文件描述符。它们的典型值分别为0和1.
若以下面方式运行命令:
./a.out < infile > outfile
那么名为infile的文件的内容会复制到名为outfile的文件中。
下面程序是以标准I/O的方式实现相同功能:
#include <apue.h>
#include <stdio.h>
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;
}
相关文章推荐
- 笔记1-2: 将标准输入复制到标准输出
- 编写一个将输入复制到输出的程序 ,并将其中连续的多个空格用一个空格代替 //学习笔记 编写一个将输入复制到输出的程序 ,并将其中连续的多个空格用一个空格代替 运行环境vs2015 #includ
- 从标准输入复制到标准输出并打印行号
- C语言学习笔记_3基本的标准输入与输出
- 将标准输入复制到标准输出
- APUE-1.2 将标准输入复制到标准输出(read(),write())
- APUE-1.3 用标准I/O将标准输入复制到标准输出
- APUE 3-5 将标准输入复制到标准输出
- Unix学习笔记------书本例题编程实例------从标注输入读入然后从标准输出输出
- 第一章 将标准输入复制到标准输出 1-2
- UNIX环境高级编程1-3用标准I/O将标准输入复制到标准输出
- [Linux学习笔记]标准输入输出
- Perl语言入门笔记 第五章 输入与输出(标准输入输出,文件句柄,printf,die,say)
- linux shell 编程笔记 - shell的输入与输出 -3- 标准输入-标准输出-标准错误
- 1.2 将标准输入复制到标准输出
- C++学习笔记--标准输入输出
- 将标准输入复制到标准输出 APUE-1.5
- 【C++ Primer】【学习笔记】【第八章】标准IO库之:文件的输入和输出
- 将标准输入复制到标准输出
- APUE 1-4用标准将标准输入复制到标准输出