導航:首頁 > 操作系統 > 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語言文件拷貝相關的資料

熱點內容
安卓抖音顯示沒網路是怎麼回事 瀏覽:817
2d我的世界源碼 瀏覽:618
怎樣製作貼天花板的解壓球 瀏覽:337
伺服器如何打開蘋果 瀏覽:96
高響應比演算法的實現 瀏覽:848
windows寫命令行 瀏覽:61
騰訊天津數據中心伺服器雲空間 瀏覽:974
單片機掃描按鍵 瀏覽:386
如何設置google伺服器 瀏覽:695
linuxtrace工具源碼 瀏覽:178
源碼第二次開發 瀏覽:784
如何獲取網頁php源碼 瀏覽:729
還用飛那麼源碼 瀏覽:204
雲伺服器鏡像可以隨時更換嗎 瀏覽:92
r600a壓縮機多少錢 瀏覽:237
程序員那麼可愛第幾集在重慶相遇 瀏覽:674
上班兩公里源碼 瀏覽:818
南寧溯源碼燕窩訂制 瀏覽:933
在個人文件夾中新建文件 瀏覽:445
中國國家地理pdf下載 瀏覽:108