用C语言写一个将一个磁盘里的文件信息剪贴到另一个磁盘里的程序
时间: 2023-11-09 17:07:46 浏览: 85
好的,我可以为您提供一个简单的C语言程序,可以将一个磁盘里的文件信息剪贴到另一个磁盘里。这个程序使用标准C库函数和系统调用来完成任务。
以下是程序的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int fd_source, fd_target;
char buffer[4096];
ssize_t nread;
if (argc != 3) {
printf("Usage: %s source_file target_file\n", argv[0]);
exit(EXIT_FAILURE);
}
// 打开源文件和目标文件
fd_source = open(argv[1], O_RDONLY);
if (fd_source == -1) {
perror("open source file");
exit(EXIT_FAILURE);
}
fd_target = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0644);
if (fd_target == -1) {
perror("open target file");
exit(EXIT_FAILURE);
}
// 从源文件中读取数据,并写入目标文件
while ((nread = read(fd_source, buffer, sizeof(buffer))) > 0) {
if (write(fd_target, buffer, nread) != nread) {
perror("write target file");
exit(EXIT_FAILURE);
}
}
if (nread == -1) {
perror("read source file");
exit(EXIT_FAILURE);
}
// 关闭文件
if (close(fd_source) == -1) {
perror("close source file");
exit(EXIT_FAILURE);
}
if (close(fd_target) == -1) {
perror("close target file");
exit(EXIT_FAILURE);
}
printf("File copied successfully.\n");
exit(EXIT_SUCCESS);
}
```
该程序需要两个命令行参数:源文件名和目标文件名。程序将打开这两个文件,并从源文件中读取数据,然后将数据写入目标文件中。完成后关闭这两个文件。
您可以将该程序保存为一个文件,例如 `copyfile.c`,然后使用以下命令编译它:
```
gcc copyfile.c -o copyfile
```
编译成功后,您可以使用以下命令来运行程序:
```
./copyfile source_file target_file
```
其中 `source_file` 是您要复制的源文件名,`target_file` 是您要复制到的目标文件名。程序将在完成复制后输出一条消息。
希望这个程序对您有所帮助!
阅读全文