cp1.c

来自「unix linux 编程实践源代码」· C语言 代码 · 共 52 行

C
52
字号
/** cp1.c *     version 1 of cp - uses read and write with tunable buffer size * *     usage: cp1 src dest */#include        <stdio.h>#include        <unistd.h>#include        <fcntl.h>#define BUFFERSIZE      4096#define COPYMODE        0644void oops(char *, char *);main(int ac, char *av[]){        int     in_fd, out_fd, n_chars;        char    buf[BUFFERSIZE];						/* check args 	*/        if ( ac != 3 ){                fprintf( stderr, "usage: %s source destination\n", *av);                exit(1);        }						/* open files	*/        if ( (in_fd=open(av[1], O_RDONLY)) == -1 )                oops("Cannot open ", av[1]);        if ( (out_fd=creat( av[2], COPYMODE)) == -1 )                oops( "Cannot creat", av[2]);							/* copy files	*/        while ( (n_chars = read(in_fd , buf, BUFFERSIZE)) > 0 )                if ( write( out_fd, buf, n_chars ) != n_chars )                        oops("Write error to ", av[2]);	if ( n_chars == -1 )			oops("Read error from ", av[1]);						/* close files	*/        if ( close(in_fd) == -1 || close(out_fd) == -1 )                oops("Error closing files","");}void oops(char *s1, char *s2){        fprintf(stderr,"Error: %s ", s1);        perror(s2);        exit(1);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?