当前位置:首页 » 编程语言 » linuxc语言文件复制文件

linuxc语言文件复制文件

发布时间: 2023-01-03 16:37:49

⑴ 【linux C编程】编写程序p2,当执行命令“p2 file1 file2”,实现复制文件file1成file2

#include <stdio.h>
int main (int argc, char* argv[])
{
if ( argc != 3 )
{
printf ("Wrong arguments.\nUsage: argv[0] srcfile desfile\n");
return 1;
}
system ("cp argv[1] argv[2]");
return 0;
}

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

#include<stdio.h> #include<unistd.h> #include<sys/stat.h> #include<sys/types.h> #include<fcntl.h>
int main(int argc,char **argv) { if(argc<3)//参数少于3,给出提示并退出 {
printf("请按如下格式运行!\n"); printf("./a.out [原始图片] [目标图片]\n");
return 0;
}
int fd1 = open(argv[1],O_RDONLY);//只读方式打开源文件 if(-1 == fd1) { perror("打开文件失败");

return 0;
} int fd2 = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0666);//读写方式打开文件,有则清空,没有则创建 char buf[100]={0}; int res;
while(res = read(fd1,buf,sizeof(buf)))//从源文件读出 {
write(fd2,buf,res);//写入到目标文件
}
close(fd1);//关闭文件 close(fd2); return 0;
}

⑶ 如何在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);

⑷ 怎么用C语言复制文件或者移动文件,不要用system的命令。Linux命令cp cat都不行,我要

要求 c:\source.txt文件必须存在,可以自己建立一个这样的文本文件,并输入一些数据,以便测试。
复制文件:源文件c:\source.txt 复制到c:\dex.txt
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
char str1;
fp2=fopen("c:\\des.txt","w");
if((fp1=fopen("C:\\source.txt","r"))==NULL)
{
printf("file cannot be opened\n");
return;
}
while((str1=fgetc(fp1))!=EOF)
fputc(str1,fp2);
fclose(fp1);
fclose(fp2);
}
希望能够帮到你。

移动文件:源文件c:\source.txt 移动到c:\dex.txt
#include<stdio.h>
void main()
{
FILE *fp1,*fp2;
char str1;
fp2=fopen("c:\\des.txt","w");
if((fp1=fopen("C:\\source.txt","r"))==NULL)
{
printf("file cannot be opened\n");
return;
}
while((str1=fgetc(fp1))!=EOF)
fputc(str1,fp2);
fclose(fp1);
fclose(fp2);
remove("c:\\source.txt");
}

⑸ linux下用c语言写出复制黏贴文件

c语言调用cp命令和参与

systeam "cp -- h";

不过我觉得用shell脚本来工作效率好点儿

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

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

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

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

#include<unistd.h>

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

直接调用shell命令即可

⑻ linux下c语言多线程拷贝文件出现问题,有时候会拷贝成功,有时候会失败,求原因

如果针对问的问题来说,可以考虑使用同步机制.可以查如mutex等同步机制.另外,我会建议你应该使用单一个服务程序,用缓存空间去接收要打印的讯息,单一控制输出萤幕,这样应该会比较好.因为萤幕输出只有一个,多线直接控制,本来就不好处理.如果采用传送讯息机制,应该就有顺序分别,不易产生问题.

⑼ 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;
}

热点内容
安卓在哪里找游戏 发布:2025-07-04 22:15:25 浏览:242
路由器访问光猫 发布:2025-07-04 22:07:47 浏览:897
数据库显示语句 发布:2025-07-04 22:04:30 浏览:740
编程课道具 发布:2025-07-04 22:04:02 浏览:844
华为手机不是安卓什么时候可以更新米加小镇 发布:2025-07-04 22:01:37 浏览:785
饥荒服务器搭建视频 发布:2025-07-04 21:48:38 浏览:523
github上传文件夹 发布:2025-07-04 21:29:22 浏览:1003
php课程学习中心 发布:2025-07-04 21:29:16 浏览:298
win7加密文件夹如何解密 发布:2025-07-04 21:25:24 浏览:555
为啥系统缓存的垃圾多呢 发布:2025-07-04 21:15:45 浏览:952