有没有办法在 c 中传递字符串变量到 remove()

Is there a way to pass a string variable to remove() in c

提问人:pixells4D 提问时间:2/28/2023 更新时间:2/28/2023 访问量:64

问:

好的,这就是我正在使用的功能:remove()

int fmove(const char * filepth, const char * destpth)
{
    FILE * fp;
    fp = fopen(filepth, "r+");

    FILE * fpdest;
    fpdest = fopen(destpth, "w");

    if ((fp != NULL) && (fpdest != NULL))
    {
        char fpdata[999];
        fgets(fpdata, 999, fp);
        fputs(fpdata, fpdest);

        remove(filepth);
    } else
    {
        prtmessage("ERROR", "Cannot move file!");
        return 1;
    }

    return 0;
}

但返回 -1。我知道数组返回它们的指针(我说对了吗?),但是有没有办法将字符串传递到 ?remove()filepathremove()

C 文件 - IO

评论

4赞 Some programmer dude 2/28/2023
如果返回,则表示存在错误。然后,您需要检查 的值,或者可能用于打印带有错误的字符串。remove-1errnoperror
5赞 Some programmer dude 2/28/2023
至于问题,您可能使用的是 Windows 系统吗?然后,您无法删除由任何进程打开的文件,甚至无法删除您自己的文件。不能有打开文件的进程,否则删除文件将失败。

答:

7赞 Vlad from Moscow 2/28/2023 #1

从 C 标准

如果文件处于打开状态,则 remove 函数的行为为 实现定义。

您需要在调用 之前关闭文件。remove()

评论

0赞 pixells4D 2/28/2023
非常感谢!我从来没想过。