日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
c語(yǔ)言cp函數(shù) c語(yǔ)言和cpp

基于C語(yǔ)言的簡(jiǎn)單cp命令實(shí)現(xiàn)?

main函數(shù)的參數(shù),就是命令執(zhí)行時(shí),傳給程序的參數(shù),一般兩個(gè),一個(gè)是整數(shù),表示傳入?yún)?shù)的個(gè)數(shù),一個(gè)是字符串?dāng)?shù)組,傳入的參數(shù),都是字符串,命令行輸入時(shí)用空格分隔。

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、雞西梨樹(shù)ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的雞西梨樹(shù)網(wǎng)站制作公司

可以用system(ls)命令,生成目錄名稱,突出到文件,通過(guò)字符處理,查看文件屬性,對(duì)于目錄,執(zhí)行下一級(jí)cp,對(duì)于一般文件,按二進(jìn)制文件讀寫復(fù)制。

C語(yǔ)言實(shí)現(xiàn)CP指令

用C實(shí)現(xiàn)的步驟是:

1、解析命令,就是提取出源路徑和目標(biāo)路徑,以及文件名。

2、寫一個(gè)切換目錄的函數(shù),比如chgdir(char *),路徑名字做參數(shù)。

3、執(zhí)行切換目錄函數(shù),正確執(zhí)行后,在這個(gè)目錄下找到目標(biāo)文件,定義一個(gè)緩沖區(qū),把文件內(nèi)容拷貝進(jìn)去,找不到文件另作處理。

4、再調(diào)用2步驟中的目錄切換函數(shù),在目標(biāo)路徑下建立一個(gè)空文件并把緩沖區(qū)內(nèi)容寫進(jìn)去,保存。

c語(yǔ)言中cp是什么意思

cp在c語(yǔ)言中沒(méi)有特別的含義

在linux系統(tǒng)中,它是一個(gè)命令行程序,作用是copy文件

next;而是np=cp->next;delete cp;cp=n'>c語(yǔ)言為什么不用cp=cp->next;而是np=cp->next;delete cp;cp=n

cp是一個(gè)指針,如果直接用cp的next賦值給cp,cp原來(lái)指向的內(nèi)存地址就無(wú)法釋放,造成內(nèi)存泄漏。

linux中cp命令如何用 C語(yǔ)言實(shí)現(xiàn)

1,首先需要了解cp的原理。

2,可以參考cp的源碼去了解其原理

3,cp命令的源碼可以在linux內(nèi)核中找到。

4,或者下載busybox其中也會(huì)有cp的源碼

只有了解其原理之后才能談如何實(shí)現(xiàn)。參考代碼如下:

#include?stdio.h

#include?stdlib.h

#include?sys/stat.h

#include?sys/types.h

#include?fcntl.h

#include?errno.h

#include?unistd.h

#include?string.h

#define?BUF_SIZE?1024

#define?PATH_LEN?128

void?my_err(char?*err_string,?int?line?)

{

fprintf(stderr,"line:%d?",line);

perror(err_string);?

exit(1);

}

void?copy_data(const?int?frd,const?int?fwd)

{

int?read_len?=?0,?write_len?=?0;

unsigned?char?buf[BUF_SIZE],?*p_buf;

while?(?(read_len?=?read(frd,buf,BUF_SIZE))?)?{

if?(-1?==?read_len)?{

my_err("Read?error",?__LINE__);

}

else?if?(read_len??0)?{?//把讀取部分寫入目標(biāo)文件

p_buf?=?buf;

while?(?(write_len?=?write(fwd,p_buf,read_len))?)?{

if(write_len?==?read_len)?{

break;

}

else?if?(write_len??0)?{?//只寫入部分

p_buf?+=?write_len;

read_len?-=?write_len;

}

else?if(-1?==?write_len)?{

my_err("Write?error",?__LINE__);

}

}

if?(-1?==?write_len)?break;

}

}

}

int?main(int?argc,?char?**argv)?

{

int?frd,?fwd;?//讀寫文件描述符

int?len?=?0;

char?*pSrc,?*pDes;?//分別指向源文件路徑和目標(biāo)文件路徑

struct?stat?src_st,des_st;

if?(argc??3)?{

printf("用法?./MyCp?源文件路徑?目標(biāo)文件路徑\n");

my_err("arguments?error?",?__LINE__);

}

frd?=?open(argv[1],O_RDONLY);

if?(frd?==?-1)?{

my_err("Can?not?opne?file",?__LINE__);

}

if?(fstat(frd,src_st)?==?-1)?{

my_err("stat?error",__LINE__);

}

/*檢查源文件路徑是否是目錄*/

if?(S_ISDIR(src_st.st_mode))?{

my_err("略過(guò)目錄",__LINE__);

}

pDes?=?argv[2];

stat(argv[2],des_st);

if?(S_ISDIR(des_st.st_mode))?{?//目標(biāo)路徑是目錄,則使用源文件的文件名

len?=?strlen(argv[1]);

pSrc?=?argv[1]?+?(len-1);?//指向最后一個(gè)字符

/*先找出源文件的文件名*/

while?(pSrc?=?argv[1]??*pSrc?!=?'/')?{

pSrc--;

}

pSrc++;//指向源文件名

len?=?strlen(argv[2]);?

//?.?表示復(fù)制到當(dāng)前工作目錄

if?(1?==?len??'.'?==?*(argv[2]))?{

len?=?0;?//沒(méi)有申請(qǐng)空間,后面就不用釋放

pDes?=?pSrc;

}

else?{?//復(fù)制到某目錄下,使用源文件名

pDes?=?(char?*)malloc(sizeof(char)*PATH_LEN);

if?(NULL?==?pDes)?{

my_err("malloc?error?",?__LINE__);

}

strcpy(pDes,argv[2]);

if?(?*(pDes+(len-1))?!=?'/'?)?{?//目錄缺少最后的'/',則補(bǔ)上’/‘

strcat(pDes,"/");

}

strcat(pDes+len,pSrc);

}

}

/*?打開(kāi)目標(biāo)文件,?使權(quán)限與源文件相同*/?

fwd?=?open(pDes,O_WRONLY?|?O_CREAT?|?O_TRUNC,src_st.st_mode);

if?(fwd?==?-1)?{

my_err("Can?not?creat?file",?__LINE__);

}

copy_data(frd,fwd);

//puts("end?of?copy");

if?(len??0??pDes?!=?NULL)

free(pDes);

close(frd);

close(fwd);

return?0;

}

用C語(yǔ)言 寫unix 的 cp指令

你問(wèn)的不是很清楚。

cp命令的話

cp dir1 dir2肯定不行的嘛,拷貝目錄要加-R 或者-a參數(shù)的。

如果是自己寫程序?qū)崿F(xiàn)cp命令的話,用stat, 或者 lstat 或者 fstat函數(shù)。

具體查manpage.


網(wǎng)站名稱:c語(yǔ)言cp函數(shù) c語(yǔ)言和cpp
URL網(wǎng)址:http://www.dlmjj.cn/article/hpjcgd.html