文件描述符通常是一个小的非负整数,内核用以表示一个特定进程正在访问的文件。当内核打开一个现有文件或者创建一个新文件时,它都返回一个文件描述符。在读、写文件时,可以使用这个文件描述符。
//main.c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.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)
{
printf("write errro");
exit(-1);
}
if(n < 0)
{
printf("read error");
exit(-1);
}
return 0;
}
编译以及执行
cc main.c
./a.out
//main.c
#include <stdio.h>
#include <stdlib.h>
int main(void )
{
int c;
while((c = getc(stdin)) != EOF)
if(putc(c, stdout) == EOF)
{
printf("output error\n");
exit(-1);
}
if(ferror(stdin))
{
printf("output error\n");
exit(-1);
}
exit(0);
}
编译及执行
cc main.c
./a.out