unix -输入和输出

  • 不带缓冲的I/O
    函数open, read, write, lseek,close.
    这些函数都使用文件描述符。
    系统调用

代码实现: 从标准输入读,并写入标准输出

#include <stdio.h>          
#include <stdlib.h>        
#include <stddef.h>        
#include <string.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)
        {
            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>      



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);
}
posted @ 2021-10-02 10:59  feiwatson  阅读(81)  评论(0编辑  收藏  举报