I/O中C语言使用read、write实现两个文件的拷贝
时间: 2024-02-12 17:02:27 浏览: 86
可以使用C语言的read和write函数来实现两个文件的拷贝。具体的实现步骤如下:
1. 打开源文件和目标文件。可以使用fopen函数来打开文件,如果文件不存在则会创建新文件。
2. 读取源文件的内容,并将内容写入到目标文件中。可以使用read函数来读取源文件,write函数来将读取的内容写入到目标文件中。
3. 关闭源文件和目标文件。可以使用fclose函数来关闭打开的文件。
下面是一个简单的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#define BUF_SIZE 1024
int main(int argc, char *argv[])
{
int src_fd, dest_fd, rd_size, wt_size;
char buf[BUF_SIZE];
if (argc != 3) {
fprintf(stderr, "Usage: %s <src_file> <dest_file>\n", argv[0]);
exit(EXIT_FAILURE);
}
src_fd = open(argv[1], O_RDONLY);
if (src_fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
dest_fd = open(argv[2], O_CREAT | O_WRONLY | O_TRUNC, 0644);
if (dest_fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
while ((rd_size = read(src_fd, buf, BUF_SIZE)) > 0) {
wt_size = write(dest_fd, buf, rd_size);
if (wt_size != rd_size) {
perror("write");
exit(EXIT_FAILURE);
}
}
if (rd_size == -1) {
perror("read");
exit(EXIT_FAILURE);
}
if (close(src_fd) == -1) {
perror("close");
exit(EXIT_FAILURE);
}
if (close(dest_fd) == -1) {
perror("close");
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}
```
在运行程序时,需要传入两个参数,第一个参数是源文件的路径,第二个参数是目标文件的路径。程序会将源文件的内容复制到目标文件中。
阅读全文