2011年7月3日 星期日

[C] 使用 open write read 做 copy file


首先這是期末考一個很容易Google到的題目,但是還是很多人沒做,甚至是課本都有的東西了。


#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#define PERMS 0666


int main(int argc, const char *argv[])
{
        int f1,f2,n;
        char buf[BUFSIZ];
        if(argc !=3)
                return 0;
        if ((f1=open(argv[1],O_RDONLY,0))==-1){
        printf("error f1\n");
                return 0;
        }
        if((f2=creat(argv[2],PERMS))==-1){
                printf("f2 error\n");
                return 1;
        }
        while((n=read(f1,buf,BUFSIZ))>0){
                if(write(f2,buf,n)!=n){
                        printf("error write \n");
                        return 1;
                }
        }


        return 0;
}                   


沒有留言:

張貼留言