gpt4 book ai didi

c - 我想在 UNIX 中制作复制功能文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:32:24 25 4
gpt4 key购买 nike

当我输入“./test test.c/home/user1/Desktop/”时,它不起作用。

我想将文件从 (now_path) 复制到 (other_path)。

但是,我不知道为什么它不起作用我认为它是完美的代码。它有错误还是需要更多其他代码??

char ch;
int src, dst;

if( argc != 3 )
{
printf("argument error\n");
printf("usage: ./a.out src dest\n");
}
src = open( argv[1], O_RDONLY );
dst = open( argv[2], O_WRONLY | O_CREAT | O_TRUNC, 0644 );

while( read( src, &ch, 1 ))
write( dst, &ch, 1 );

close( src );
close( dst );
return 0;

最佳答案

除非您开始检查返回值,否则不可能弄清楚。 open 函数在失败时返回一个负值,并且 errno 被设置为指示出了什么问题。

同样适用于readwrite。它们返回读取/写入的字节数和失败时的负值。 errno 也由这些函数设置。

你可以使用这样的构造:

if ((src = open( argv[1], O_RDONLY )) < 0) {
fprintf(stderr, "Error accessing source file.\n");
fprintf(stderr, "errno: %s\n", strerror(errno));
exit(EXIT_FAILURE);
}

关于c - 我想在 UNIX 中制作复制功能文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55889591/

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