导航:首页 > 操作系统 > linuxc语言文件拷贝

linuxc语言文件拷贝

发布时间:2023-05-12 13:42:18

❶ 怎样用C语言将文件复制另外的文件夹

有两种方式可以实现复制:
一、自行编写函数,实现复制。
算法流程如下:
1 以读的方式打开源文件,以写的方式打开目标文件;
2 每次读一个字节,并写到目标文件中,直到达到文件结尾为止;
3 关闭两个文件。

二、调用系统命令
stdlib.h中的system函数,可以执行系统命令行支持的命令。
int system(char *cmd);
调用时就是执行cmd中的指令。
1 对于windows,就是执行dos命令,可以调用
system(" /Y src_file target_dir");
其中src_file为源文件,而target_dir就是目标文件夹。
2 对于linux,需要执行shell命令cp,如下
system("cp src_file target_dir");

❷ 如何在linux下用c编程实现文件的复制

打开一个读文件和一个写文件,用一个循环,fgetc每读一个字符,就用fputc写入另一个文件誉销,这样就实物简现了文件的复制,和普通的C语言标罩虚裤准库编程是一样的,代码如下:
int c;
FILE *in, *out;

in = fopen("file.in", "r");
out = fopen("file.out", "w");

while( ( c = fgetc(in) ) != EOF)
fputc(c, out);

fclose(in);
fclose(out);

❸ linux下用简单c语言代码怎么实现实现文件夹所有内容的复制

#include<unistd.h>

intmain(intargc,charconst*argv[])
{
system("cp-r目标目录目的目录");//把目标目录和目的目录改成实际目录即可
return0;
}

直接调用shell命令即可

❹ linux远程拷贝文件!!

可以考虑使用 scp命令。

Linux为我们提供了两个用于文件的命令,一个是cp,一个是scp,但是他们略有不同,cp 主要是用于在同一台电脑上,在不同的目录之间来回文件 scp 主要是在不同的Linux系统之间来回文件。

Linux为我们提供了两个用于文件的命令,一个是cp,一个是scp,但是他们略有不同。

cp --- 主要是用于在同一台电脑上,在不同的目录之间来回文件
scp --- 主要是在不同的Linux系统之间来回文件

关于cp的具体用法:

命令基本格式:
cp [OPTIONS] SOURCE DEST --- 从源路径文件到目的路径
cp [OPTIONS] SOURCE... DIRECTORY --- 将多个源文件到指定的目录(多个源文件用空格分隔)

OPTIONS:
-a same as -dpR 尽可能将源文件状态、权限等资料都照原装予以复制,并且是递归;
-r 表示递归,若source中含有目录名,则将目录下之档案亦皆依序拷贝至目的地;
-f 表示force,若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制;
范例:
1. 将档案 aaa 复制(已存在),并命名为 bbb:
cp aaa bbb
2. 将所有的C语言程式拷贝至 Finished 子目录中:
cp *.c Finished/

关于scp的具体用法:

不同的Linux之间文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以在另外一台机器使用ftp的client程序来进行文件的。
第二种方法就是采用samba服务,类似Windows文件 的方式来操作,比较简洁方便。
第三种就是利用scp命令来进行文件复制。

scp是有Security的文件,基于ssh登录。

命令基本格式:
scp [OPTIONS] file_source file_target

OPTIONS:
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接、认证、 或是配置错误
-C 使能压缩选项
-P 选择端口 . 注意 -p 已经被 rcp 使用

从 本地 复制到 远程
scp /home/daisy/full.tar.gz [email protected]:/home/root (然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始了),复制目录加参数 -r 即可

从 远程 复制到 本地
scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz

以下是补充:

命令:cp

使用权限:所有使用者

使用方式:

cp [options] source dest

cp [options] source... directory

说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。

把计

-a 尽可能将档案状态、权限等资料都照原状予以复制。

-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。

-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。

范例:

将档案 aaa 复制(已存在),并命名为 bbb :

cp aaa bbb

将所有的C语言程式拷贝至 Finished 子目录中 :

cp *.c Finished

命令:scp

不同的Linux之间文件常用有3种方法:

第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的。

第二种方法就是采用samba服务,类似Windows文件 的方式来操作,比较简洁方便。

第三种就是利用scp命令来进行文件复制。

scp是有Security的文件,基于ssh登录。操作起来比较方便,比如要把当前一个文件到远程另外一台主机上,可以如下命令。

scp /home/daisy/full.tar.gz [email protected]:/home/root

然后会提示你输入另外那台172.19.2.75主机的root用户的登录密码,接着就开始了。

如果想反过来操作,把文件从远程主机到当前系统,也很简单。
linux之cp/scp命令+scp命令详解(转) - linmaogan - 独木★不成林scp root@/full.tar.gz 172.19.2.75:/home/root/full.tar.gz home/daisy/full.tar.gz

linux 的 scp 命令 可以 在 linux 之间复制 文件 和 目录;

==================
scp 命令
==================
scp 可以在 2个 linux 主机间复制文件;

命令基本格式:
scp [可选参数] file_source file_target

======
从 本地 复制到 远程
======
* 复制文件:
* 命令格式:
scp local_file remote_username@remote_ip:remote_folder
或者
scp local_file remote_username@remote_ip:remote_file
或者
scp local_file remote_ip:remote_folder
或者
scp local_file remote_ip:remote_file

第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
* 例子:
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music
scp /home/space/music/1.mp3 [email protected]:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.cumt.e.cn:/home/root/others/music
scp /home/space/music/1.mp3 www.cumt.e.cn:/home/root/others/music/001.mp3

* 复制目录:
* 命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder

第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
* 例子:
scp -r /home/space/music/ [email protected]:/home/root/others/
scp -r /home/space/music/ www.cumt.e.cn:/home/root/others/

上面 命令 将 本地 music 目录 复制 到 远程 others 目录下,即复制后有 远程 有 ../others/music/ 目录

======
从 远程 复制到 本地
======
从 远程 复制到 本地,只要将 从 本地 复制到 远程 的命令 的 后2个参数 调换顺序 即可;

例如:
scp [email protected]:/home/root/others/music /home/space/music/1.mp3
scp -r www.cumt.e.cn:/home/root/others/ /home/space/music/

最简单的应用如下 :

scp 本地用户名 @IP 地址 : 文件名 1 远程用户名 @IP 地址 : 文件名 2

[ 本地用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

注意两点:
1.如果远程服务器防火墙有特殊限制,scp便要走特殊端口,具体用什么端口视情况而定,命令格式如下:
#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp要注意所使用的用户是否具有可读取远程服务器相应文件的权限。

❺ linux c++ 拷贝文件问题

#include <stdlib.h>
#include <string.h>
#include <io.h>
#include <stdio.h>
#include <iostream>
#include <windows.h>

/*********************************************************************
功能:复制文件
参数:pSrc,原文件名
pDes,目标文件名
返回:<0,失败
>0,成功
作者:
*********************************************************************/
#define BUF_SIZE 256
int File(const char * pSrc,const char *pDes)
{
FILE *in_file, *out_file;
char data[BUF_SIZE];
size_t bytes_in, bytes_out;
long len = 0;
if ( (in_file = fopen(pSrc, "rb")) == NULL )
{
perror(pSrc);
return -2;
}
if ( (out_file = fopen(pDes, "wb")) == NULL )
{
perror(pDes);
return -3;
}
while ( (bytes_in = fread(data, 1, BUF_SIZE, in_file)) > 0 )
{
bytes_out = fwrite(data, 1, bytes_in, out_file);
if ( bytes_in != bytes_out )
{
perror("Fatal write error.\n");
return -4;
}
len += bytes_out;
printf("ing file .... %d bytes \n", len);
}
fclose(in_file);
fclose(out_file);
return 1;
}

/*********************************************************************
功能:复制(非空)目录
参数:pSrc,原目录名
pDes,目标目录名
返回:<0,失败
>0,成功
作者:
*********************************************************************/
int Dir(const char * pSrc,const char *pDes)
{
if (NULL == pSrc || NULL == pDes) return -1;
mkdir(pDes);
char dir[MAX_PATH] = {0};
char srcFileName[MAX_PATH] = {0};
char desFileName[MAX_PATH] = {0};
char *str = "\\*.*";
strcpy(dir,pSrc);
strcat(dir,str);
//首先查找dir中符合要求的文件
long hFile;
_finddata_t fileinfo;
if ((hFile = _findfirst(dir,&fileinfo)) != -1)
{
do
{
strcpy(srcFileName,pSrc);
strcat(srcFileName,"\\");
strcat(srcFileName,fileinfo.name);
strcpy(desFileName,pDes);
strcat(desFileName,"\\");
strcat(desFileName,fileinfo.name);
//检查是不是目录
//如果不是目录,则进行处理文件夹下面的文件
if (!(fileinfo.attrib & _A_SUBDIR))
{
File(srcFileName,desFileName);
}
else//处理目录,递归调用
{
if ( strcmp(fileinfo.name, "." ) != 0 && strcmp(fileinfo.name, ".." ) != 0 )
{
Dir(srcFileName,desFileName);
}
}
} while (_findnext(hFile,&fileinfo) == 0);
_findclose(hFile);
return 1;
}
return -3;
}

❻ 求linux下复制文件到其他目录的c语言库函数

如果必须用函数实现的话,基本思路如下:
1. fopen已知文件,把内容读到buffer(char [])中去(fread), fclose当前文件
2. fopen新文件(用新名字)在目录1中,把buffer内容写入新文件(fwrite),fclose之
3. 重复第2步,只是换成目录2

注意,也可用open/read/write,但fopen/fread/fwrite是更常用更符合C标准库更容易移植的版本。

阅读全文

与linuxc语言文件拷贝相关的资料

热点内容
怎么加密w8文件 浏览:609
linuxprogram 浏览:708
php接口编程思想 浏览:92
如何下载电话软件app 浏览:906
java命令行解析 浏览:572
云服务器白嫖 浏览:917
程序员小清新 浏览:989
编译器地址8字节对齐 浏览:464
三菱plc编程win1064 浏览:258
高中英语单词pdf 浏览:425
编译原理词法分析常见问题 浏览:197
车小艺app怎么更新 浏览:77
手机app被管控如何移除 浏览:753
51单片机温湿度检测 浏览:575
安卓抖音显示没网络是怎么回事 浏览:817
2d我的世界源码 浏览:618
怎样制作贴天花板的解压球 浏览:337
服务器如何打开苹果 浏览:96
高响应比算法的实现 浏览:848
windows写命令行 浏览:61