使用standard IO(libc)复制文件

来源:互联网 发布:淘宝发饰店推荐知乎 编辑:程序博客网 时间:2024/04/30 14:41

int
main(void)
{
     int     c;  

     while ((c = getc(stdin)) != EOF)
         if (putc(c, stdout) == EOF)
             err_sys("output error");
     
     if (ferror(stdin))
         err_sys("input error");
          
     exit(0);  
}

这个例子用了getc 和 putc来完成任务。 要注意的是,

1. c是int类型的,要是用char则会产生问题

2. 判断是否出错的标志都是EOF

3. 要用ferror来判断是什么错误

4. 用feof来判断是否是文件结束

 

int
main(void)
{
char buf[MAXLINE];

while (fgets(buf, MAXLINE, stdin) != NULL)
if (fputs(buf, stdout) == EOF)
err_sys("output error");

if (ferror(stdin))
err_sys("input error");

exit(0);
}

1. fgets 和 fputs的错误返回不一样

 

 

 

 

原创粉丝点击