您尚未登录。

楼主 #1 2017-09-21 18:17:09

esp8266
会员
注册时间: 2017-09-08
已发帖子: 40
积分: 40

请问诸位大神,linux下面有没有类似windows DeleteFile,CopyFile这些函数可以调用

请问诸位大神,linux下面有没有类似windows DeleteFile,CopyFile这些函数可以调用

离线

#2 2017-09-21 18:18:54

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 请问诸位大神,linux下面有没有类似windows DeleteFile,CopyFile这些函数可以调用

DeleteFile:
remove - remove a file or directory
Synopsis

#include <stdio.h>
int remove(const char *pathname);





离线

#3 2017-09-21 18:20:50

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 请问诸位大神,linux下面有没有类似windows DeleteFile,CopyFile这些函数可以调用

CopyFile:
https://stackoverflow.com/questions/2180079/how-can-i-copy-a-file-on-unix-using-c

#include <fcntl.h>
#include <unistd.h>
#include <errno.h>

int cp(const char *to, const char *from)
{
    int fd_to, fd_from;
    char buf[4096];
    ssize_t nread;
    int saved_errno;

    fd_from = open(from, O_RDONLY);
    if (fd_from < 0)
        return -1;

    fd_to = open(to, O_WRONLY | O_CREAT | O_EXCL, 0666);
    if (fd_to < 0)
        goto out_error;

    while (nread = read(fd_from, buf, sizeof buf), nread > 0)
    {
        char *out_ptr = buf;
        ssize_t nwritten;

        do {
            nwritten = write(fd_to, out_ptr, nread);

            if (nwritten >= 0)
            {
                nread -= nwritten;
                out_ptr += nwritten;
            }
            else if (errno != EINTR)
            {
                goto out_error;
            }
        } while (nread > 0);
    }

    if (nread == 0)
    {
        if (close(fd_to) < 0)
        {
            fd_to = -1;
            goto out_error;
        }
        close(fd_from);

        /* Success! */
        return 0;
    }

  out_error:
    saved_errno = errno;

    close(fd_from);
    if (fd_to >= 0)
        close(fd_to);

    errno = saved_errno;
    return -1;
}




离线

#4 2017-09-21 18:23:17

强哥
会员
注册时间: 2017-09-06
已发帖子: 3
积分: 3

Re: 请问诸位大神,linux下面有没有类似windows DeleteFile,CopyFile这些函数可以调用

不错...

离线

#5 2017-09-21 18:41:00

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,348
积分: 9202

Re: 请问诸位大神,linux下面有没有类似windows DeleteFile,CopyFile这些函数可以调用

Windows 的API确实强大,也更人性化。毕竟*nix历史负担太重。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn