文件描述符 通常是一个小的非负整数,也就是说0,1等 标准输入,标准输出和标准错误 standard input,standard output,standard error,在不做特殊处理的情况下,3个描述符都链接到终端,也就是说,我们用终端输入,输出和输出错误,使用 < >符号来重定向输入源和输出目的。 不带缓冲的I/O 函数open,read,write,lseek以及close提供了不带缓冲的I/O,这些函数都使用文件描述符。 #include "apue.h" #define BUFFSIZE 4096 int main(void){ int n; char buf[BUFFSIZE]; while((n=read(STDIN_FILENO,buf,BUFFSIZE))>0) if(write(STDOUT_FILENO,buf,n)!=n) err_sys("write error"); if(n<0) err_sys("read error"); exit(0); } 以上是一个复制文件的程序实例。 重点代码(4.1 仅笔者自己理解,不作为读者参考 ): 4.1 n=read(STDIN_FILENO,buf,BUFFSIZE) STDIN_FILENO:是一个常量,POSIX标准的一部分,在unistd.h中定义,实际值为0