gpt4 book ai didi

c - 我的将一个文件复制到另一个文件的程序失败

转载 作者:行者123 更新时间:2023-11-30 14:50:02 25 4
gpt4 key购买 nike

我试图将文件中写入的内容复制到另一个文件(使用系统调用),但我的代码似乎不起作用。我首先尝试使用 printf() 打印缓冲区,但它也不起作用。我的猜测是我错误地读取了文件。

#define BUF_SIZE 200
int main(int argc, char *argv[]){

int entrada,salida,leidos;
char buffer[BUF_SIZE];

entrada = open(argv[1],O_RDONLY);
salida = creat(argv[2], 0644);

while( (leidos = read(entrada,buffer,BUF_SIZE)) > 0 ){
write(salida,buffer,leidos);

}

close(salida);
close(entrada);

return 0;
}

我的实现有什么问题吗?

最佳答案

我认为您在输出中缺少适当的打开标志。尝试:

salida = creat(argv[2], O_WRONLY | O_CREAT, 0644);

但是,正如评论所暗示的,您可能会收到由返回值和/或 errno 变量指示的错误,而您忽略了这些错误。

此外,我会避免使用 Castellano 特定的变量名称。编写 C/C++ 无论如何都需要懂英语,所以命名时最好坚持英语;否则 - 不会说卡斯特拉诺语的人将难以理解您的代码。

最后 - 你为什么要这样做?有更好的 C++ 友好,甚至 C 友好的方法来复制文件 - 这也将是可移植的(您的代码不是)。请参阅:

Copy a file in a sane, safe and efficient way

关于c - 我的将一个文件复制到另一个文件的程序失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49220900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com