当前位置 : 主页 > 手机开发 > 无线 >

复制/移动文件并在Linux中使用系统调用的C应用程序

来源:互联网 收集:自由互联 发布时间:2021-06-10
我很难进行系统调用来取消链接我的C代码中的文件工作.我希望在复制代码后从文件系统中删除该文件.我收到的错误是: declared here extern int unlink (const char *__name) __THROW __nonnull ((1)); #i
我很难进行系统调用来取消链接我的C代码中的文件工作.我希望在复制代码后从文件系统中删除该文件.我收到的错误是:

declared here extern int unlink (const char *__name) __THROW __nonnull ((1));
#include <stdio.h>
 #include <unistd.h>
 #include <errno.h>
 #include <fcntl.h>
int main(int argc, char * args [])
{
    int infile, outfile;
    int numofbytesread;
    char buffer[20];

    infile = open(args[1], O_RDONLY, 0700);

    if (infile == ENOENT)
    {
            printf("Could not find file");
            return 1;
    }

    outfile == open(args[2], O_WRONLY | O_CREAT, 0700);

    while ((numofbytesread = read(infile, buffer, 20))){
            write(outfile, buffer, numofbytesread);
    }
    close(infile);
    close(outfile);

     unlink();
 return 0;
 }
复制后,您可以调用unlink系统调用.

unlink(args[1])

但在删除文件之前,请务必检查副本是否成功.

参考:https://www.gnu.org/software/libc/manual/html_node/Deleting-Files.html

网友评论