`

liunx下copy 指令的 实现

阅读更多
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/stat.h>

int main (int argc, char* argv[]) {
	if (argc < 3) {
		fprintf (stderr, "用法:%s <源文件> <目的文件>\n", argv[0]);
		return -1;
	}

	int src = open (argv[1], O_RDONLY);
	if (src == -1) {
		perror ("open");
		return -1;
	}

	struct stat st;
	if (fstat (src, &st) == -1) {
		perror ("fstat");
		return -1;
	}

	int dst = open (argv[2], O_WRONLY | O_CREAT | O_EXCL, st.st_mode);
	if (dst == -1) {
		if (errno != EEXIST) {
			perror ("open");
			return -1;
		}

		printf ("文件%s已存在,是否覆盖?(y/n) ", argv[2]);
		int ch = getchar ();
		if (ch != 'y' && ch != 'Y')
			return 0;

		if ((dst = open (argv[2], O_WRONLY | O_CREAT | O_TRUNC,
			st.st_mode)) == -1) {
			perror ("open");
			return -1;
		}
	}

	unsigned char buf[1024];
	ssize_t bytes;

	while ((bytes = read (src, buf, sizeof (buf))) > 0)
		if (write (dst, buf, bytes) == -1) {
			perror ("write");
			return -1;
		}

	if (bytes == -1) {
		perror ("read");
		return -1;
	}

	close (dst);
	close (src);

	return 0;
}

分享到:
评论

相关推荐

    linux指令.pdf

    本篇文档主要介绍了一些基础的Linux指令,并通过实际操作图片进行说明,适合从初级到高级用户学习。 首先,基础指令部分介绍了“ls”、“pwd”、“cd”、“mkdir”、“touch”、“cp”、“mv”、“rm”、“vim”、...

    10个linux常用指令

    ls 指令是 Linux 中最基本的文件管理指令,用于显示当前目录下的文件和文件夹。常用的参数有: * -a:显示所有文件,包括隐藏文件 * -l:显示文件的详细信息 例如,使用 ls -la 可以显示当前目录下的所有文件,...

    window-常用操作及linux下常用指令讲解

    Window-常用操作及Linux下常用指令讲解 Window操作系统和Linux操作系统是两种最常用的操作系统,它们之间有很多不同,但也有一些相似之处。本文将详细讲解Window操作系统和Linux操作系统下的常用操作和指令。 ...

    linux指令.txt

    根据提供的文件信息,我们可以整理出一系列与Linux操作系统相关的命令及使用场景。这些命令涵盖了文件管理、权限设置、网络监控、文本处理等多个方面,是Linux系统管理员日常工作中必不可少的工具。 ### 文件管理 ...

    linux和cmd 指令chm文档,内含3个linux的,1个windows dos的文档

    这份压缩包文件包含了关于Linux和Windows DOS的指令CHM文档,这些文档通常以帮助文件的形式提供详细的操作指南。 在Linux中,命令行界面是操作系统的核心部分之一,它允许用户通过输入简洁的命令来执行任务,无需...

    linux指令大全(完整篇)

    ### Linux指令大全(完整篇) #### 一、引言 在Linux系统中,掌握一系列基本命令对于高效地管理和操作文件及目录至关重要。本篇文章将详细介绍Linux中的几个关键命令及其用法,包括`cat`、`cd`、`chmod`、`chown`...

    Linux 指令大全Linux 指令大全

    根据给定的文件信息,以下将详细解析与Linux指令相关的几个关键知识点,包括`cat`、`cd`、`chmod`、`chown`、`cp`、`cut`等命令的使用方法及其功能。 ### `cat`命令 `cat`是Concatenate的缩写,用于合并文件并打印...

    DOS的内部命令 Linux系统指令

    DOS和Linux的命令虽然在语法和功能上有所区别,但它们都是通过命令行来实现对系统的控制。熟悉这些基本命令,无论是对系统维护、程序开发还是故障排查,都将极大地提高工作效率。在学习和使用过程中,还可以结合手册...

    Linux Network 用于发送 指令到服务器,服务器将结果发送到客户端输出.gz

    总结来说,Linux网络与C#结合可以实现客户端向服务器发送指令,服务器执行并返回结果的功能。通过SSH、SCP、Netcat等工具,我们可以构建可靠且安全的通信链路。同时,C#提供强大的网络编程接口,使得客户端应用程序...

    linux操作指令集合

    ### Linux操作指令集合详解 #### 文件传输类命令 1. **ftp (File Transfer Protocol)** - **功能**: FTP 是一种用于在网络上进行文件传输的标准协议。它可以用来在两台计算机之间上传、下载文件。 - **用法示例*...

    [电脑教程]CMD + DOS + Linux +( Linux vs. DOS )常用指令大全.doc

    以下是一些常用指令的概述: 1. CMD和DOS命令: - `dir`/`ls`: 列出目录中的文件和子目录。 - `cd`: 更改当前工作目录。 - `copy`/`cp`: 复制文件。 - `del`/`rm`: 删除文件。 - `mkdir`/`md`: 创建新目录。 ...

    快捷指令(linux常用命令windows常用工具)

    对于系统管理员和开发者来说,掌握操作系统中的快捷指令能够大大提高工作效率。本篇将重点介绍Linux常用命令以及Windows中的一些常用工具,以帮助你更好地理解和应用这些工具。 一、Linux常用命令 1. **ls**:列出...

    [电脑教程]CMD+DOS+Linux+(Linuxvs.DOS)常用指令大全。-汇编.pdf

    其常用指令范围广泛,包含了大量的命令,以下是一些基础且常用的Linux指令: 1. ls:列出目录中的文件和文件夹。 2. cd:改变当前工作目录。 3. mkdir:创建新的目录。 4. rmdir:删除一个空目录。 5. rm:删除一个...

    linux 指令

    ### Linux指令详解 #### 文件命名规则与命令格式 在Linux操作系统中,文件的命名规则相对宽松,除了根目录符号“/”之外,几乎所有的字符都可以用于文件命名。然而,为了保持文件名的清晰度和易读性,某些特殊字符...

    近期UNIX/Linux漏洞.pdf

    AIX的xlock工具实现上存在缓冲区溢出漏洞,本地攻击者可能利用此漏洞以root用户权限执行任意指令。 4. Sun Solaris 10 x64拒绝服务漏洞 Solaris 10 x64系统在处理IPv6报文时可能变得忙碌,可能导致拒绝服务攻击。 ...

    linux驱动工程面试必问知识点

    Linux 系统实现原子操作的方法包括使用锁机制、原子指令等。 9. MIPS Cpu 中空间地址的划分 MIPS Cpu 中空间地址的划分是指 MIPS 处理器中的地址空间分配。MIPS 处理器的地址空间分为代码段、数据段、堆栈段等。 ...

    Linux Network 用于发送 指令到服务器,服务器将结果发送到客户端输出.zip

    这个压缩包文件"Linux Network 用于发送 指令到服务器,服务器将结果发送到客户端输出.zip"似乎包含了关于如何通过Linux网络进行交互式命令传递的示例或教程。下面我们将详细探讨Linux网络的基础知识、发送指令到...

    linux指令大全

    从给定的文件信息中,我们可以提炼出一系列与Linux操作系统相关的基础指令知识,这对于初学者来说是极其宝贵的资源。下面将详细阐述这些知识点,帮助读者更好地理解和掌握Linux的基础操作。 ### 1. 显示目录和文件...

Global site tag (gtag.js) - Google Analytics