gpt4 book ai didi

c - 使用 unlink 删除文件

转载 作者:行者123 更新时间:2023-11-30 18:18:06 24 4
gpt4 key购买 nike

我想读取命令行参数中给出的文件并在读取后将其删除。这就是我正在做的事情。

char *filename = argv[1];
char *outputfile = strcat(argv[1], ".cmp");

fd = open(argv[1], O_RDONLY);
chars = read(fd, buf, BUFFERSIZE);
fd1 = creat(outputfile, 0644);
write(fd1, buf, BUFFERSIZE);
close(fd1);
close(fd);
unlink(argv[1]);

如果我在命令行中给出“mytxt”,代码应该创建“mytxt.cmp”文件并删除“mytxt”,而不是删除“mytxt.cmp”并保持“mytxt”不变。为什么会这样呢?如何删除命令行参数中给出的文件。

最佳答案

char *outputfile = strcat(argv[1], ".cmp");

您正在修改argv[1],并且filename指向它。您可以尝试使用 mallocsprintf 创建一个新字符串 - 将所需的值写入其中。

char *newstr = malloc(strlen(argv[1]) + strlen(".cmp") + 1);
sprintf(newstr, "%s.cmp", argv[1]);

关于c - 使用 unlink 删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15146358/

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