- 不带缓冲的I/O
函数open, read, write, lseek,close.
这些函数都使用文件描述符。
系统调用
代码实现: 从标准输入读,并写入标准输出
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <unistd.h>
#include <dirent.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)
{
printf("write error\n");
exit(1);
}
}
if(n<0)
{
printf("read error\n");
exit(1);
}
exit(0);
}
标准函数库,带缓冲I/O接口
getc, putc
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <unistd.h>
#include <dirent.h>
int
main (int argc, char *argv[])
{
int c;
while((c=getc(stdin))!=EOF)
{
if(putc(c,stdout)==EOF)
{
printf("output error\n");
exit(1);
}
}
if(ferror(stdin))
{
printf("input error\n");
exit(1);
}
exit(0);
}