linux 课堂作业
2016-11-02 21:55
190 查看
linux下文件拷贝代码
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#define BUFF_SIZE 1024
int main(int argc,char *argv[])
{
int from_fp;
int to_fp;
char buffer[BUFF_SIZE];
int read_size;
int write_size;
char *ptr;
if(argc != 3)//个数不是三个出错
{
printf("error%s\n",strerror(errno));
exit(EXIT_FAILURE);
}
//打开文件
if((from_fp = open(argv[1],O_RDONLY)) == -1)
{
printf("open %s failure\n",argv[1]);
exit(EXIT_FAILURE);
}
if((to_fp = open(argv[2],O_WRONLY | O_CREAT | O_TRUNC,S_IRUSR | S_IWUSR)) == -1)
{
printf("open %s failure\n",argv[2]);
exit(EXIT_FAILURE);
}
while((read_size = read(from_fp,buffer,BUFF_SIZE)) != 0)
{
if(read_size == -1)
{
printf("read %s error\n",argv[1]);
break;
}
if(read_size > 0)
{
ptr = buffer;
while(write_size = write(to_fp,buffer,read_size))
{
if(write_size == -1)
{
printf("write %s error\n",argv[2]);
break;
}
if(write_size
== read_size)//都写进去了
{
break;
}
else
if(write_size > 0)//写了一部分
{
ptr += write_size;
read_size = read_size - write_size;
}
}
if(write_size == -1)
{
break;
}
}
}
close(from_fp);
close(to_fp);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#define BUFF_SIZE 1024
int main(int argc,char *argv[])
{
int from_fp;
int to_fp;
char buffer[BUFF_SIZE];
int read_size;
int write_size;
char *ptr;
if(argc != 3)//个数不是三个出错
{
printf("error%s\n",strerror(errno));
exit(EXIT_FAILURE);
}
//打开文件
if((from_fp = open(argv[1],O_RDONLY)) == -1)
{
printf("open %s failure\n",argv[1]);
exit(EXIT_FAILURE);
}
if((to_fp = open(argv[2],O_WRONLY | O_CREAT | O_TRUNC,S_IRUSR | S_IWUSR)) == -1)
{
printf("open %s failure\n",argv[2]);
exit(EXIT_FAILURE);
}
while((read_size = read(from_fp,buffer,BUFF_SIZE)) != 0)
{
if(read_size == -1)
{
printf("read %s error\n",argv[1]);
break;
}
if(read_size > 0)
{
ptr = buffer;
while(write_size = write(to_fp,buffer,read_size))
{
if(write_size == -1)
{
printf("write %s error\n",argv[2]);
break;
}
if(write_size
== read_size)//都写进去了
{
break;
}
else
if(write_size > 0)//写了一部分
{
ptr += write_size;
read_size = read_size - write_size;
}
}
if(write_size == -1)
{
break;
}
}
}
close(from_fp);
close(to_fp);
return 0;
}
相关文章推荐
- Linux平台Makefile文件的编写基础入门(课堂作业)
- Linux课堂作业2(inode工作原理以及软硬连接的区别)
- Linux课堂作业3(课后题)
- 作业:书上P135与课堂讲的作比较
- Linux 技巧: 用 cron 和 at 调度作业
- Linux 技巧: 控制预定作业的持续时间
- Linux 技巧: 用 cron 和 at 调度作业
- Linux 技巧: 用 cron 和 at 调度作业
- LINUX入门课堂之二(转载)
- 书上P135与课堂讲的作比较(补3月6号作业)
- linux中的作业管理与进程管理
- LINUX入门课堂之一(转载)
- 每天一个知识点linux(十二)作业管理命令
- Linux下完成的一个作业程序
- 书上P135与课堂讲的作比较(补3.6的作业)
- Linux 技巧: 用 cron 和 at 调度作业
- linux大作业初稿
- linux自动化作业安排工具cron anacron at batch (2) 推荐
- 作业:书上P135与课堂讲的作比较
- Linux下的一个作业程序