#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#define MAX_SIZE 1024
int read_line(int fd, char *buffer, int max_size)
{
int i;
int n_read;
char temp;
for(i = 0; i < max_size; i++)
{
if((n_read=read(fd, &temp, 1)) == -1)
{
perror("read error");
exit(1);
}
if(n_read == 0)
{
return 0;
}
if(temp == '\n')
{
buffer[i] = ' ';
return i + 1;
}
else
{
buffer[i] = temp;
}
}
return i;
}
int main(int argc, char **argv)
{
int from_fd;
int to_fd;
int n_read;
int n_write;
char buffer[MAX_SIZE];
if(argc != 3)
{
printf("please input from_file and to_file!\n");
exit(1);
}
if((from_fd = open(argv[1], O_RDONLY)) == -1)
{
printf("Open %s Error:%s\n", argv[1], strerror(errno));
exit(1);
}
if((to_fd = open(argv[2], O_RDWR | O_CREAT, 0766)) == -1)
{
printf("Open %s Error:%s\n", argv[2], strerror(errno));
exit(1);
}
while((n_read = read_line(from_fd, buffer, sizeof(buffer))) != 0)
{
buffer[n_read] = '\0';
write(to_fd, buffer, strlen(buffer));
write(to_fd, "\n", 1);
memset(buffer, 0 ,sizeof(buffer));
}
close(from_fd);
close(to_fd);
return 0;
}
文件复制代码
猜你喜欢
转载自blog.csdn.net/pencher_liu/article/details/54605856
今日推荐
周排行