仿Linux中的cp操作

分别用系统调用和标准库函数两种方式编写一个程序对文件逐个字符进行拷贝,其中源文件名为"./file.in"是一个二进制文件,目标文件名是"./file.out",目标文件的权限为文件属性为:可读可写

 1 /*
 2  ============================================================================
 3  Name        : test_cp.c
 4  Author      :
 5  Version     :
 6  Copyright   : Your copyright notice
 7  Description : Hello World in C, Ansi-style
 8  ============================================================================
 9  */
10
11 #include <stdio.h>
12 #include <stdlib.h>
13
14 int main(int argc, char * argv[]) {
15     FILE * source, *des;
16     char buffer[BUFSIZ + 1];//BUFSIZ=8014,是系统已定义的
17 //这里可以让这个程序更通用,使用main函数来传值
18 //    if (argc < 3) {
19 //        printf("please input source file path and destination file path\n");
20 //        exit(1);
21 //    }
22
23     source = fopen("./file.in", "r");
24     des = fopen("./file.out", "w");
25
26     if (source == NULL || des == NULL) {//判断当前目录下是否有文件
27         perror("open failed");
28         exit(1);
29     }
30     printf("开始将目标文件复制到目的文件\n");
31     while (fgets(buffer, BUFSIZ, source) != NULL) {    //每次读取一行,将source的内容复制到des中
32         fputs(buffer, des);
33     }
34     exit(0);
35 }

 

作者:kissazi2 
出处:http://www.cnblogs.com/kissazi2/ 
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载:http://www.cnblogs.com/kissazi2/archive/2013/01/20/2868274.html

时间: 2024-08-28 23:24:37

仿Linux中的cp操作的相关文章

Linux中RPM文件操作的常用命令总结_Linux

简介 众所周知在Linux操作系统中,有一个系统软件包,它的功能类似于Windows里面的"添加/删除程序",但是功能又比"添加/删除程序"强很多,它就是Red Hat Package Manager(简称RPM).本文介绍的就是关于Linux中RPM文件操作的常用命令,下面话不多说,来一起看看吧. 一.RPM 安装操作 命令: rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv e

Linux中使用cp命令进行强制覆盖的方法

  cp在拷贝时,如果遇到相同的文件名的文件,就会不断询问是否覆盖,让你输入yes or no .为什么呢?这是为了linux为了安全考虑,在cp命令上用了别名.也就是你输入只是输入cp命令时,其实系统是你输入的是 " cp -i" .其中的 i就是表示交互式的意思,不断询问你是否覆盖.所以,cp强制覆盖有以下三种方法. 方法一: 输入alias命令,看到系统内部使用的是cp的别名. 代码如下: #alias < p> alias cp='cp -i'   输入unalia

C语言的fork函数在Linux中的进程操作及相关面试题讲解_C 语言

fork的意义 下图为,C 程序的存储空间布局(典型) 1.一个现有进程可以调用 fork 函数创建一个新进程. 2.fork 函数被调用一次,但返回两次, 两次返回的唯一区别是子进程的返回值是 0, 而父进程的返回值是新子进程的 PID. 3.子进程和父进程继续执行 fork 调用之后的指令. 在上图的存储空间布局中,父子进程只共享正文段,其余的都各自有独立的副本 (通常使用 copy-on-write 的策略,速度比较快). fork 的两种用法 1.父子进程同时执行不同的代码段典型应用:W

linux中Bash数组操作教程

一.定义数组 1. 使用[]操作符 names[0]='zrong' names[1]='jacky' 2. 使用()直接赋值 names=('zrong' 'jacky') # 或 names=([0]='zrong' [1]='jacky') 3. 使用declare -a定义数组.这种方法可以将一个空的变量定义成数组类型. declare -a names 4. 从文件中读取数组 cat>names.txt zrong jacky sweet Ctrl+C # 将每一行读取为数组的一个元素

动手实现linux中的cp命令(可自行拓展)

我们在学习系统编程的时候,一定会有这样的经历,让你动手实现一个简单的cp命令,也就是拷贝相应的文件到对应的目录,或者说是复制吧,当然,实现非常的简单,我们来看看源码吧: #include <stdio.h> #include <string.h> #include <unistd.h> #include <fcntl.h> int main(int argc ,char *argv[]) { if(argc != 3) { fprintf(stderr ,

如何在 Linux 中复制文件到多个目录中

在学习 Linux 的过程中,对于新手而言总是会使用几个命令来完成一个简单的任务.对正在熟悉使用终端的人这是很容易理解的行为.然而,如果你想要成为一个老手,学习我说的"快捷命令"会显著减少时间浪费. 在本篇中,我们会用一个简单的方法在 Linux 中用一个命令来将目录复制到多个文件夹中. 在 Linux 中,cp 命令常被用于从一个文件夹中复制文件到另一个文件夹中,最简单的语法如下: # cp [options-.] source(s) destination 另外,你也可以使用高级复

在 Linux 中怎样使用cp命令合并目录树

在 Linux 中怎样使用cp命令合并目录树 怎样将两个布局相似的目录树合并成一个新的目录树?为理解该问题让我们思考下面的例子. 假设 dir1 和 dir2 目录中分别有3个子目录a,b和c.目录布局如下所示:  输入目录布局 Layout of input directories 在目录a,b和c中有一些文件,tree命令的输出将能更好的说明:  文件布局 Layout of files 1. 使用cp命令创建合并: 现在我们将这两个目录合并成一个名为"merged"新的目录中.完

简介Linux中cp和mv搭配{,}在shell当中的用法

  这篇文章主要介绍了简介Linux中cp和mv搭配{,}在shell当中的用法,作者举了四个这样的大括号扩展示例,需要的朋友可以参考下 经常会在博客或者论坛看到类似下面的命令 大括号扩展 Brace expansion { } shell 作用 ? 1 cp /etc/httpd/httpd.{,.bakup} 或者是 ? 1 mv resume{z,}.doc 那么,在uinx / linux shell命令中是什么意思?起什么作用呢? { } 并没有什么实际的含义,但是却可以作为Brace

Linux中文件的压缩与解压缩命令操作示例集锦

  所谓压缩就是将原有的文件通过不同的编码技术进行运算,以减少数据存储所需要的空间,使用前再利用解压缩还原源文件的内容即可. 和windows一样,在linux下也存在多种压缩与解压缩方法. 1.zip压缩与解压缩 zip是最为广泛使用的压缩程序,经它压缩的文件会产生扩展名为zip的压缩文件,而且这种格式在多种系统上可以使用,像windows中的winzip 下面看一下在linux中如何建立zip文件. 我们在终端中输入zip会出现这个命令的一些介绍和参数的意义. 代码如下: xiaopeng@