UNIX环境高级编程习题4.6,但不包含复制空洞文件
# include <stdio.h>
# include <sys/stat.h>
# include <sys/types.h>
# include <fcntl.h>
# include <unistd.h>
# include <stdlib.h>
# define BUFFSIZE 4096
int main(int argc, char *argv[])
{
int file1, file2;
int n;
char buf[BUFFSIZE];
if(argc != 3)
{
printf("error for argument!\n");
exit(1);
}
if((file1 = open(argv[1], O_RDWR)) < 0)
{
printf("Can not open file: %s\n", argv[1]);
exit(1);
}
if((file2 = open(argv[2]. O_RDWR | O_CREAT | O_EXCL, 00666)) < 0)
{
printf("File %s already exists\n", argv[2]);
exit(1);
}
if(lseek(file1, 0, SEEK_SET) == -1)
{
printf("lseek error\n");
exit(1);
}
while((n = read(file1, buf, BUFFSIZE)) > 0)
{
if(write(file2, buf, n) != n)
{
printf("write error\n");
exit(1);
}
}
if(n < 0)
{
printf("read error\n");
}
return 0;
}
类似cp命令程序
最新推荐文章于 2023-08-20 15:44:52 发布